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
ResultExecute
(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測試後,將產生下面的效果:
將如上圖所示,自動生成一個名叫“{三維}”的視圖,並自動激活為當前視圖。
源碼中,還有另外一個創建3d視圖的指令,可以創建如下的3d盒子效果:
他是使用View3D.CreateIsometric()方法來實現的。
通過這個方法,還可以在winform中創建自己想要的3d預覽效果,下圖先給出一張效果圖,過幾天,我會把完整的3d預覽效果以工程項目的方式提供一個實際可用的版本給大家下載,下面就先看一下3d預覽圖吧:
該3d預覽是在Winform窗體中進行的,他不是將Revit的內容預覽到Winform中,而是在Revit繪製之前,在Winform中先根據界面參數設置一定條件後,先生成預覽圖。最後再將這些參數整合,繪製到Revit中。
說明這個先後順序的原因是,也許有讀者以為,這個預覽僅僅只是將Revit事先繪製好的模型預覽到Winform中。實際不是的,是反過來的,事先在Winform預覽生成效果,然後才到Revit生成真正的繪製效果。
當然,這個預覽圖,不論是Revit->Winform,還是Winform->Revit,兩種方向都可以的。
過些天,會把這個預覽項目開放給大家下載。這將是工程生產中實際可用的項目。
源碼下載
下載地址:https://download.csdn.net/download/mazhiyuan1981/12878854
關鍵字: Winform Application Autodesk