Revit二次開發,創建任意視角的3d視圖

如何在Revit中創建一個任意視角的3d視圖?

先看下Revit提供的3d視圖api


通過這個api,我們可以創建各種參數條件的3d視圖。

<code>View3D view3D; using (Transaction tran = new Transaction(document, Guid.NewGuid().ToString())) { tran.Start(); XYZ eye = XYZ.Zero; XYZ up = VectorFromAngles(45, 45 + 90); XYZ forward = VectorFromAngles(45, 45); IList types = null; using (var collector = new FilteredElementCollector(document).OfClass(typeof(ViewFamilyType))) { types = collector.Cast().ToList(); } var viewFamilyType = types.FirstOrDefault(x => x.ViewFamily == ViewFamily.ThreeDimensional); view3D = View3D.CreateIsometric(document, viewFamilyType.Id); view3D.SetOrientation(new ViewOrientation3D(eye, up, forward)); tran.Commit(); }/<code>

上述是一個創建3d視圖的例子。

3d視圖創建好後,可以通過下面語句立即打開並切換為當前視圖:

<code>activeDocument.ActiveView = view3D;/<code>

生成效果如上圖。上圖紅圈的眼界視角,是在生成的時候定義的。這是該視圖的默認視角,即你關閉這個3d視圖後,再次打開,他默認就是這個視角。那麼這個視角如何實現的呢?通過下面的語句:

<code>//創建3d視角 XYZ eye = XYZ.Zero; XYZ up = VectorFromAngles(45, 45 + 90); XYZ forward = VectorFromAngles(45, 45);/<code>

角度可以自己隨意調整。

完整源碼請自行下載查看,另外,源碼中還提供了工程化的實際可用擴展版本。可以直接使用。如下圖所示:

源碼下載地址:

https://download.csdn.net/download/mazhiyuan1981/12881407