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

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

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

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


通過這個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>
Revit二次開發,創建任意視角的3d視圖

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

<code>//創建3d視角
XYZ eye = XYZ.Zero;
XYZ up = VectorFromAngles(45, 45 + 90);
XYZ forward = VectorFromAngles(45, 45);/<code>
Revit二次開發,創建任意視角的3d視圖

角度可以自己隨意調整。

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

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

源碼下載地址:

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


分享到:


相關文章: