國立臺灣大學土木工程學系 工程資訊模擬與管理研究中心 康仕仲副主任 國立臺灣大學土木工程學系 電腦輔助工程組碩士班二年級 林之謙 國立臺灣大學土木工程學系 工程資訊模擬與管理研究中心 李敬賢副執行長 開發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作簡要說明。
圖一、開啟畫面 接下來必須將所需的程式庫(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 評論
發表回覆。 |
文章類別
發佈時間
三月 2023
|