Revit API Experiments - 3d View Rotator
There is an inside joke in BIM community in Poland, that we spend most of our time simply rotating the model. I decided to check if I can automate this part of being a BIM Coordinator 😉
Autodesk.Revit.ApplicationServices.Application app = commandData.Application.Application;
Autodesk.Revit.DB.Document doc = commandData.Application.ActiveUIDocument.Document;
UIDocument uidoc = new UIDocument(doc);
Autodesk.Revit.DB.View3D view3d = doc.ActiveView as View3D;
for (int i = 0; i < 1000; i++)
{
ViewOrientation3D orientation = view3d.GetOrientation();
XYZ eyePosition = orientation.EyePosition;
XYZ upDirection = orientation.UpDirection;
XYZ direction = orientation.ForwardDirection;
Line testLine = Line.CreateBound(upDirection, direction);
Line testLine2 = Line.CreateBound(new XYZ(0,0,0), eyePosition);
XYZ p2 = new XYZ(0, 0, 15);
double degree = 0.0174533 / 3;
Line newLine = testLine.CreateTransformed(Transform.CreateRotation(p2, degree)) as Line;
Line newLine2 = testLine2.CreateTransformed(Transform.CreateRotation(p2, degree)) as Line;
//TODO: Learn more about Vectors
ViewOrientation3D newOrientation = new ViewOrientation3D(newLine2.GetEndPoint(1), newLine.GetEndPoint(0), newLine.GetEndPoint(1));
view3d.SetOrientation(newOrientation);
System.Threading.Thread.Sleep(2);
uidoc.RefreshActiveView();
}
return Result.Succeeded;
Written on February 9, 2024