VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之【Revit API】创建相机视角

在Revit中有一个相机功能可以以相机视角产生一个视图。一开始我在Revit2016的API文档中找关键词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;
}
复制代码

 

关于上方向

 

 


相关教程