【Revit API】创建相机视角

匿名 (未验证) 提交于 2019-12-02 22:10:10

在Revit中有一个相机功能可以以相机视角产生一个视图。一开始我在2016中找关键词Camera,但是没什么收获。

其实这个相机功能的真正核心是创建透视视图:View3D.CreatePerspective(Document, ElementId)

简单的代码示例如下:

var uiDocument = commandData.Application.ActiveUIDocument;var doc = uiDocument.Document;IEnumerable<ViewFamilyType> viewFamilyTypes = from elem in new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType))                                                           let type = elem as ViewFamilyType                                                           where type.ViewFamily == ViewFamily.ThreeDimensional                                                           select type; using (Transaction tran = new Transaction(doc, "[ToolSet] Camera")) {    tran.start();     View3D view3D = View3D.CreatePerspective(doc, viewFamilyTypes.First().Id);     if (null != view3D)     {           var eye = new XYZ(0,0,100);   //相机坐标           var up = new XYZ(0,0,1);      //上方向           var forward = new XYZ(3,4,5); //相机到目标点的向量           view3D.SetOrientation(new ViewOrientation3D(eye, up, forward));           view3D.DisplayStyle = DisplayStyle.ShadingWithEdges;     }     tran.Commit();      UIDocument RevitUiDoc = new UIDocument(doc);     RevitUiDoc.ActiveView = view3D; }

关于上方向

Autodesk的View3D博客:

https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2017/ENU/Revit-API/files/GUID-A7FA8DBC-830E-482D-9B66-147399524442-htm.html?_ga=2.66804973.2137010315.1527470650-214555019.1525755704

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!