Revit二次開發,創建系統默認的3D視圖以及3d視圖的盒子

Revit提供了一個PostableCommand指令集,通過該指令集可以創建很多Revit支持的默認指令。

<code>

using

Autodesk.Revit.DB;

using

Autodesk.Revit.DB.Architecture;

using

Autodesk.Revit.UI;

using

System;

using

System.Collections.Generic;

using

System.Linq;

using

System.Runtime.CompilerServices;

using

System.Text;

namespace

Create3DView

{ [ ] [ ] [ ]

public

class

DefaultCommand

:

IExternalCommand

{

public

Result

Execute

(

ExternalCommandData commandData,

ref

string

message, ElementSet elements

)

{

var

document = commandData.Application.ActiveUIDocument.Document;

using

(

var

transaction =

new

Transaction(document)) { transaction.Start(Guid.NewGuid().ToString()); RevitCommandId commandId = RevitCommandId.LookupPostableCommandId(PostableCommand.Default3DView);

if

(commandData.Application.CanPostCommand(commandId)) { commandData.Application.PostCommand(commandId); } transaction.Commit(); }

return

Result.Succeeded; } } } /<code>

通過外部工具加載到Revit測試後,將產生下面的效果:

Revit二次開發,創建系統默認的3D視圖以及3d視圖的盒子

將如上圖所示,自動生成一個名叫“{三維}”的視圖,並自動激活為當前視圖。


源碼中,還有另外一個創建3d視圖的指令,可以創建如下的3d盒子效果:

Revit二次開發,創建系統默認的3D視圖以及3d視圖的盒子

他是使用View3D.CreateIsometric()方法來實現的。

Revit二次開發,創建系統默認的3D視圖以及3d視圖的盒子

通過這個方法,還可以在winform中創建自己想要的3d預覽效果,下圖先給出一張效果圖,過幾天,我會把完整的3d預覽效果以工程項目的方式提供一個實際可用的版本給大家下載,下面就先看一下3d預覽圖吧:

Revit二次開發,創建系統默認的3D視圖以及3d視圖的盒子

該3d預覽是在Winform窗體中進行的,他不是將Revit的內容預覽到Winform中,而是在Revit繪製之前,在Winform中先根據界面參數設置一定條件後,先生成預覽圖。最後再將這些參數整合,繪製到Revit中。

說明這個先後順序的原因是,也許有讀者以為,這個預覽僅僅只是將Revit事先繪製好的模型預覽到Winform中。實際不是的,是反過來的,事先在Winform預覽生成效果,然後才到Revit生成真正的繪製效果。

當然,這個預覽圖,不論是Revit->Winform,還是Winform->Revit,兩種方向都可以的。

過些天,會把這個預覽項目開放給大家下載。這將是工程生產中實際可用的項目。


源碼下載

下載地址:https://download.csdn.net/download/mazhiyuan1981/12878854


分享到:


相關文章: