臺大BIM研究中心
  • 首頁
  • 關於BIM中心
    • 組織成員
  • 歷年活動
  • 教育活動
    • 暑期課程/高中職營隊
    • 年度訓練計畫
    • 開放式課程
    • 訓練活動
    • 研討活動
    • BIM for Owners
    • 學員回饋
  • BIM專欄
    • 營建知訊列表
    • 土木水利電子報列表
  • 出版/媒體
  • 相關連結
    • 國內外 BIM 網站
    • 企業徵才
  • 聯絡我們
  • EN

[營建知訊轉載] 簡述Autodesk Navisworks API之開發流程 康仕仲、林之謙、李敬賢 (2012.01)

1/31/2012

0 評論

 
國立臺灣大學土木工程學系 工程資訊模擬與管理研究中心 康仕仲副主任
國立臺灣大學土木工程學系 電腦輔助工程組碩士班二年級  林之謙
國立臺灣大學土木工程學系 工程資訊模擬與管理研究中心 李敬賢副執行長
 
開發BIM之API的重要性 
建築資訊模型(Building Information Modeling)在營建產業的趨勢及應用已日漸普及,工程中不同階段皆有使用BIM工具的需求。隨之而來的問題則是,如何能夠在不同的工程階段中有效使用BIM工具,以串連上下游之工程資訊。
 
現有的BIM軟體很難完全滿足各工程團隊多樣化的使用狀況。例如,在個人單獨操作時,儘管許多BIM工具的操作功能非常豐富,但使用者需要的操作成果卻經常侷限在某些特定且分散的功能組合中。如此一來,多樣的操作功能,反而使得使用者介面及操作程序顯得過於複雜,甚至對使用者造成困擾。另一個常見的例子則是在團隊的使用上。許多工程團隊運用BIM工具作為工程會議討論的平台,此時所需的使用功能主要偏重於模型的瀏覽方式,而非編輯修改。然而BIM建模工具軟體的使用者介面並非單獨為此目的而設計,因此在操作上經常需要執行多個指令才可達到所需的視圖畫面,對非以BIM模型建立為主的管理類人員而言,造成了不算低的使用門檻。
 
為滿足多樣化的個別需求,軟體廠商提供了軟體的開發環境API (Application Programming Interface),使用者可撰寫程式來客製化介面,並能重組、延伸及優化軟體的功能,以符合工程作業中的特定需求。本文特別針對Autodesk Navisworks API進行研究,並簡介其架構及基本的程式撰寫。
Autodesk Navisworks API簡介 
Autodesk Navisworks為一套可以提供工程、營造等專業人員,管控工程專案整體流程明細的商用軟體,其中包含工程的工作項目、時程以及碰撞偵測等相關功能,透過視覺化3D BIM模型,協助相關人員處理工程的相關問題,有助於提升整體工程的效率、溝通及相關規劃分析之效能。此軟體目前廣泛應用於工程界,其API之相關文件也較為詳細。
 
目前Navisworks API主要分為三大類:.NET API、COM API以及nwCreate API。以下僅就這三種API作簡要說明。

  • .NET API.NET API是在Navisworks 2011後開始使用,主要遵循微軟所開發的軟體框架.NET Framework的標準。.NET Framework背後有龐大的程式庫(Base Class Library),其中包含使用者介面、檔案獲得、資料庫連接以及數值演算法等等。依靠這些資料庫,開發者無須管控記憶體,可直接進行相關應用軟體的開發。
    .NET API可以開發Navisworks外掛程式、控制Navisworks的外部程式,或者直接包含Navisworks介面的程式。透過.NET API,可以將原本Navisworks的既有功能,以開發者設計的使用者介面呈現。但是如果需要進行對模型的控制等非Navisworks之原有功能,則需要透過COM API。而目前若需要使用COM API,則要透過架接的程序達成,因為整體程式必須符合.NET Framework標準。
  • COM API簡單來說,COM API是遵循元件物件模型COM (Component Object Model)的標準,其發展較早,主要提供對於作業系統較底層的控制選項,以標準定義的介面互動。COM標準的主要架構為將一組由方法組成的函式作為介面(Interface),透過這些方法,即可定義使用者所需要的介面。但COM有許多限制,例如需使用二進制的執行碼,故對於記憶體控管必須非常嚴謹。
    COM API可以開發較深入的功能,例如若希望能夠控制模型,也可將模型中所有的樑、柱進行位移。另外如:模型衝突檢測結果、時程控制、模型顏色改變控制等等,也需要透過COM API來達成。
  •  NWCreate API在使用Navisworks程式時,並沒有辦法對其讀取的模型檔進行修改,所以如果希望修改Navisworks的模型檔,並且能夠在Navisworks中同步,就必須透過API的開發方式,而NWCreate即是提供此項功能。
    ​此API可以建立空間幾何關係、屬性、文字、視點、材料、材質以及光線等等。空間幾何關係的建置,則是透過建立三角網格及B-rep的方式為主。另外也支援基礎的模型控制,如聯集、交集、延伸及旋轉等等。
    ​利用NWCreate API,可以在第三方軟體中開發輸出NWC檔案的功能,或是用來開發讀取使用者設計的檔案格式,再將此檔案整合至Navisworks。舉例來說,假設要開發由Revit輸出NWC檔,即可透過此API進行開發。​
  • .NET API開發流程簡介 
    Navisworks .NET API文件在安裝完程式後,即可在安裝的資料夾內找到,其資料夾檔名為api(預設路徑為C:\Program Files\Autodesk\Navisworks Manage 2012\api)。其中包括了三種API的文件說明及範例檔案,以下說明將針對如何在.NET中從頭開發一個獨立且包含Navisworks瀏覽介面的程式。
    首先,開啟所使用的整合開發環境(以下圖示使用Microsoft Visual Studio 2010英文版),選取Visual C#中的Windows Forms Application,並輸入自己所想要的檔名(圖一)。
圖片
圖一、開啟畫面
接下來必須將所需的程式庫(Library)匯入(圖二),包括:autodesk.navisworks.controls.dll
autodesk.navisworks.api.dll
上述檔案的路徑為C:\Program Files\Autodesk\Navisworks Manage 2012。
圖片
圖片
圖二、加入程式庫
接著在「工具箱」(toolbox)按右鍵選擇「選擇物件(Choose Item)」(圖三a),再選擇右下角「瀏覽」(Browse)(圖三b),選擇autodesk.navisworks.controls.dll(路徑為C:\Program Files\Autodesk\Navisworks Manage 2012 )。按下「確定」鈕後即可在「工具箱」下看到「DocumentControl」以及「ViewControl」兩種工具(圖三d)。此兩種工具即為.NET API中使用Navisworks瀏覽介面的基礎工具。
圖片
圖三、將Navisworks瀏覽介面加入工具箱
​接著,再將「工具箱」中的ViewControl,直接拉入Windows Form中,即可看到Navisworks的瀏覽介面。將「屬性視窗」(properties)中的Layout下拉式選單打開,再將其中的「Dock」選項選為「填滿」(Fill),則瀏覽介面將與視窗介面一樣大(圖四)。
圖片
圖四、將Navisworks瀏覽介面加入工具箱
​接下來必須將控制模型物件的「DocumentControl」拉入(圖五a)。此處必須注意的是,在拉入此控制項目後,同樣要在屬性視窗(Properties)中將「ViewControl」與「DocumentControl」連結(圖五b)。
圖五、將DocumentControl拉入
圖片
現在可以開始加入選單,並製作開啟檔案的按鍵。首先再次由工具箱中的「Menus& Toolbars」中拉入「Menustrip」,並編輯其按鍵(圖六)。編輯其相關程式碼,即可以由此處開啟Navisworks檔案。
​
圖片
圖六、將Menustrip拉入
此時若需要加入控制按鈕,可在「工具箱」的「Common Controls」中選擇按鈕即可直接加入(圖七),接著再經由程式碼的撰寫,就可以進行相關控制。相關程式碼下載可以透過文末網址下載(註一),或直接參考Navisworks api資料夾內之範例檔。
​
圖片
圖七、將Button拉入
最後,經由客製化設計出來的使用者介面,可以將許多沒有必要的控制項取消,打造一個完全由使用者角度出發的使用者介面。例如,如果使用者需要一個符合觸控需求的介面,按鍵設計則可以加大(圖八);又如果使用者需要一個完全為討論時程的介面,則介面則可將timeliner相關功能加入。
圖片
圖片
圖八、客製化設計的使用者介面
小結本文簡介Navisworks之三種API,並以.NET API為例,簡單介紹整個開發流程。此三類API皆可讓使用者根據自己的需求,設計出相應的程式。目前Navisworks的API在開發上尚屬容易,僅需有.NET programming的基礎,即可在短期裡熟悉API裡的函式庫並進行開發。透過使用API,我們可以更輕鬆地讓BIM的概念延伸至工程生命週期的每個階段。如此,整體工程運作則可因運用BIM及其附加的API應用程式而帶來更高的效益,進而為整個產業帶來更全面性的變革。同時,各公司也會因為使用單位本身的文化以及流程不同,設計出具自身專有know how的API,在營建產業中不但可以保有獨特性,更能提升其競爭力。
 
未來建議由於目前的API並不支援在Navisworks程式介面可以使用的「View Cube」以及「Navigation Toolbar」,使用者需透過一些相對複雜的方法才能進行模型的展示。例如,使用者必須在Navisworks程式中預先存下各種需要的視圖,然後再透過API呼叫;或者必須透過API控制攝影機(camera)來改變使用者的視角,並進行定位以存取所需視圖。若未來能夠釋出更多控制選項,使用者在設計介面時將會更加方便,也更能夠貼近使用者的需求。此外,開發者也必須注意,有哪些功能在軟體中很容易達到,但使用API時卻並不容易達成的,以避免浪費時間尋找相對應的功能。
 
註一:相關檔案可於:http://myweb.caece.net/jacob/dd/NavisworkAPItest.rar下載

0 評論



發表回覆。

    RSS 訂閱

    文章類別

    全部
    中國工程師學會 工程雙月刊
    營建知訊

    發佈時間

    三月 2023
    一月 2023
    十月 2022
    九月 2022
    八月 2022
    七月 2022
    六月 2022
    五月 2022
    四月 2022
    三月 2022
    二月 2022
    一月 2022
    十二月 2021
    十一月 2021
    十月 2021
    九月 2021
    八月 2021
    七月 2021
    六月 2021
    五月 2021
    四月 2021
    三月 2021
    二月 2021
    一月 2021
    十二月 2020
    十一月 2020
    十月 2020
    九月 2020
    八月 2020
    七月 2020
    六月 2020
    五月 2020
    四月 2020
    三月 2020
    二月 2020
    一月 2020
    十二月 2019
    十一月 2019
    九月 2019
    八月 2019
    七月 2019
    六月 2019
    五月 2019
    四月 2019
    三月 2019
    二月 2019
    一月 2019
    十二月 2018
    十一月 2018
    十月 2018
    九月 2018
    八月 2018
    七月 2018
    六月 2018
    五月 2018
    四月 2018
    三月 2018
    二月 2018
    一月 2018
    十二月 2017
    十一月 2017
    十月 2017
    九月 2017
    八月 2017
    七月 2017
    六月 2017
    五月 2017
    四月 2017
    三月 2017
    二月 2017
    一月 2017
    十二月 2016
    十一月 2016
    十月 2016
    九月 2016
    八月 2016
    七月 2016
    六月 2016
    五月 2016
    四月 2016
    三月 2016
    二月 2016
    一月 2016
    十二月 2015
    十一月 2015
    十月 2015
    九月 2015
    八月 2015
    七月 2015
    六月 2015
    五月 2015
    四月 2015
    三月 2015
    二月 2015
    一月 2015
    十二月 2014
    十一月 2014
    十月 2014
    九月 2014
    八月 2014
    七月 2014
    六月 2014
    五月 2014
    四月 2014
    三月 2014
    二月 2014
    一月 2014
    十二月 2013
    十一月 2013
    十月 2013
    九月 2013
    八月 2013
    六月 2013
    五月 2013
    四月 2013
    三月 2013
    二月 2013
    一月 2013
    十二月 2012
    十一月 2012
    十月 2012
    九月 2012
    八月 2012
    七月 2012
    六月 2012
    五月 2012
    四月 2012
    三月 2012
    二月 2012
    一月 2012
    十二月 2011
    十一月 2011
    十月 2011
    九月 2011

Proudly powered by Weebly
  • 首頁
  • 關於BIM中心
    • 組織成員
  • 歷年活動
  • 教育活動
    • 暑期課程/高中職營隊
    • 年度訓練計畫
    • 開放式課程
    • 訓練活動
    • 研討活動
    • BIM for Owners
    • 學員回饋
  • BIM專欄
    • 營建知訊列表
    • 土木水利電子報列表
  • 出版/媒體
  • 相關連結
    • 國內外 BIM 網站
    • 企業徵才
  • 聯絡我們
  • EN