標籤:lan 自己 使用 透明 開發 產生 軟體 解譯器 部分
Navisworks 提供了.NET, COM和NwCreate 三種API。而通常我們說Navisworks API其實指的只是COM或.NET,因為NwCreate的功能比較特殊。待我一一道來:
- COM API: 這是很早很早以前就提供的介面。COM有多老基本它就有多老了。它能完成大部分產品裡有的功能。
- .NET API: 這是2011版本開始提供的。用來逐漸取代COM API。但並不是簡單的把COM 功能搬過來,而是從底層寫起,並且,增加了很多COM沒有的功能。
.NET API誕生後,我們只在.NET裡增加新功能,COM API只做維護。還有零星的一點COM功能.NET暫時沒有暴露,但可以通過COM Interop去訪問之。換句話講,您可以 在.NET API裡調用到COM的能力。下面這個表格是兩種API的大致對比,以作參考。.
|
API 能力 |
COM |
.NET |
|
模型彙總 |
√ |
√ |
|
模型基本資料訪問 |
√ |
√ |
|
模型結構樹 |
√ |
√ |
|
對象屬性訪問 |
√ 但API結構繁瑣 |
√ API結構清晰 |
|
對象尋找 |
√ 但API結構繁瑣 |
√ API結構清晰 |
|
LINQ尋找 |
× |
√ |
|
對象使用者自訂屬性添加和修改 |
√ |
×, 但可以通過COM Interop使用 |
|
自動化API |
√ |
√ |
|
材質和渲染 |
× 2015之前有Presenter API,2015後去除 |
× |
|
工程進度管理和操作 |
× |
√ |
|
匯入外部工程進度 |
× |
√ |
|
碰撞檢測 |
√ 功能有限 |
√ 功能完備 |
|
瀏覽模式 |
√ |
√ |
|
注釋 |
× |
√ |
|
算量 |
× |
√ |
|
文檔資料庫 |
× |
√ |
|
控制項 |
√ ActiveX控制項 |
√ .NET 控制項 |
|
訪問和添加超連結 |
√ |
×, 但可以通過COM Interop使用 |
|
訪問和添加快速屬性 |
√ |
×, 但可以通過COM Interop使用 |
|
剖面 |
√ 功能很有限 |
×, 但可以通過COM Interop使用 |
|
全域選項 |
× 部分可通過註冊表操作 |
× 部分可通過註冊表操作 |
|
使用者互動 |
× |
√ 目前僅外掛程式支援 |
|
臨時圖形 |
× |
√ |
|
支援WPF |
× |
√ |
|
Ribbon |
× |
√ |
|
面板 |
× |
√ |
|
視點操作 |
√ |
√ |
|
相機操作 |
√ 功能有限 |
√ 功能完備 |
|
屬性集操作 |
√ |
√ |
|
情境動畫 |
×連結地址連結地址可部分利用儲存視點 |
× 可部分利用儲存視點 |
|
對象動畫 |
×連結地址連結地址可部分利用對象位置變換 |
× 可部分利用對象位置變換 |
|
對象顏色 |
√ |
√ |
|
對象透明度 |
√ |
√ |
|
對象位置變換 |
√ |
√ |
|
添加自訂模型* |
× |
× |
|
載入自訂檔案* |
× |
× |
- NwCreate: 用來建立模型的 --- 或許您會問,前面不是提到,Navisworks不是設計軟體?嗯,是的,Navisworks本身不能建立模型,只是彙總已有的模型。而通常的API能力如上面的表格,都是對模型的審閱和管理。NwCreate是一個C++庫,讓開發人員能
- 自行從零開始,建立模型情境,產生模型,並存為nwd檔案。類似於一個OpenGL程式,在自己的畫布裡繪製出自己的模型。
- 或者,能做一種外掛程式,解釋特定的檔案格式。Navisworks能開啟60多種檔案格式,但要是有些格式很特別,而您又知道怎麼解釋其中的資料,那可以利用NwCreate寫個外掛程式,當開啟特定格式檔案時,外掛程式擷取檔案資料,按照要求繪製相應的模型。也就是說讓您能做自己的檔案解譯器。
總之,NwCreate是為開發人員而生,建立模型所用。但它也不能在現有的模型上再添加模型,只是從零開始構建一個新模型文檔。
所以,我們說普通意義上的Navisworks API指的是COM或.NET。有時,您的程式也會和 NwCreate結合。例如:不能在現有的模型上再添加模型,那用NwCreate建立出模型,再彙總到主模型也是一個思路。
Navisworks 提供了.NET, COM和NwCreate 三種API