當前位置:
首頁 > 最新 > 高冷的ArchiCAD二次開發-API白皮書

高冷的ArchiCAD二次開發-API白皮書

基於Autodesk的市場策略和完善的技術支持,國內從事Revit和CAD二次開發的企業已經數不勝數了。

同為BIM領域優秀代表的GRAPHISOFT,在國內市場表現則顯得有些力不從心。單款重量級產品ARCHICAD,似乎很難滿足國內如此龐大的工程需求類別。不過在建築設計及裝飾工程領域,ARCHICAD一直有它得天獨厚的技術積累優勢。精巧、輕量化、Elegant,能對上很大一批高端設計師的胃口,跟屌絲級通用產品Revit形成了比較大的形象錨定差異。

單單從技術角度分析,ARCHICAD可以說是最早的BIM軟體了,從初生就是這麼定位的。其實它也擁有相當完備的二次開發條件(介面、文檔、示例),基於其所開發的大量插件,也極好的拓展了ARCHICAD的功能邊界。只不過要滿足它Elegant的口味,GRAPHISOFT還設置了不少門檻:

ARCHICAD的二次開發許可權可是要收費的,收歐元!

如果不通過審核,你都無法下載到ARCHICAD的SDK和API參考文檔!

審核通過之後方可下載

本篇文章就來對其API文檔中的白皮書進行介紹。科普一下ARCHICAD二次開發的基本知識。

基本問題

1. 什麼是API開發套件(API Development Kit)?

API的意思是「應用程序編程介面」,是一個程序員可以使用的軟體環境,用來創建增強ARCHICAD功能的工具或「插件」。

2. 為什麼需要插件(Add-ons)?

雖然ARCHICAD的功能按版本快速增長,但在它目前包含的解決方案中還不能也不應該滿足A/E/C市場的所有需求。它「不能」滿足所有需求,是因為一些地方性的或專業市場的需求太過於普遍了(有的需求甚至是相互矛盾的),「不應該」滿足所有需求,是因為即使設法這樣做,結果也會是讓ARCHICAD成為一個令人困惑的,幾乎無法使用的臃腫軟體巨人。

GRAPHISOFT的發展政策是保持ARCHICAD相對「精益和平均」的特點。那就是在ARCHICAD核心中僅提供可被視為普遍(全球)都需要的東西。這些是核心的A/E/C功能。API開發工具包(SDK)給用戶提供了以插件的形式創建必要的自定義功能的可能性。

需要注意的是,使用插件並不一定意味著用戶必須通過零散的插件來「拼湊」適合他們的軟體解決方案。這些插件可以是ARCHICAD安裝程序的一部分。對於「硬連接」核心功能的用戶而言,這些插件功能可能完全無法區分。實際上,ARCHICAD中已經有幾個使用API創建的功能(例如DXF / DWG I/O或構建網格函數)以及部分標準安裝包功能(請參閱「示例」的更多內容)。

3. 需要什麼類型的插件?

有三個主要領域需要附加功能的插件。

創建本地化功能

除了建築和施工行業明顯的普遍性外,實際上每個國家或地區在設計、結構、地方法規等方面都有其獨特的特徵。這些需求應該得到滿足,但不會給不需要它的用戶造成負擔。GRAPHISOFT希望與當地的合作夥伴密切合作,創造這種「本地」功能,並且如果符合某些條件,本地化版本可以將其包含在ARCHICAD安裝程序中。

創建特殊功能

基於ARCHICAD的「垂直」解決方案的需求再日益增加,比如木屋設計、2X4房屋等特殊領域。木屋設計在斯堪的那維亞和美國有非常相似的要求。 通常,如果這種解決方案包含在壓縮包裝的「特殊解決方案」(例如用於木屋設計的ARCHICAD版)中,則該解決方案最好由市場接收。開發這種基於ARCHICAD的垂直解決方案也是GRAPHISOFT的一個戰略目標。開發合作夥伴也可以獨立或與GRAPHISOFT合作發起並創建這些解決方案產品。

定製化

隨著越來越多的大公司使用ARCHICAD,其對定製化的需求正在增加。現在藉助GRAPHISOFT的API技術,開發夥伴可以迅速地在本地滿足這些要求。它還為本地分銷商和銷售商創造了額外的、潛在利潤豐厚的收入來源。二次開發是一項開放的軟體服務。

4. API是唯一的方法嗎?

API開發不是提供額外功能或定製ARCHICAD的唯一方式。從早期開始,ARCHICAD就通過GDL編程(GDL,Geometry Description Language,幾何描述語言,ArchiCAD構件創建語言)提供了定製可能性,而GDL仍然是定製化的一個非常重要的工具。GDL對象自然可以通過API插件來實現。事實上,正如示例中所解釋的那樣,組合使用GDL對象和API插件是增強ARCHICAD功能的最強大的方法之一。除此之外,軟體中已包含的清單編碼功能也可以定製開發。這三種編程環境提供了廣泛的工具,可以幫助用戶成功解決A/E/C市場中的各種問題。

5. 誰可以做API開發?

API開發人員必須具備C或C++編程語言的經驗。有關程序方面的信息,請訪問開發者網站的政策部分。當然,要完全搞清楚如何開發,以及開發什麼功能,光有編程技能是不夠的,了解ARCHICAD的軟體功能是一個先決條件(產品經理配合)。

技術說明

API開發工具包的目標,是為開發合作夥伴提供一種開發插件的方法,通過插件可以訪問和修改軟體中的虛擬建築的資料庫。API軟體工具可根據其功能分為四大類:

1. 資料庫工具 Database tools

這些功能允許訪問虛擬建築的資料庫,並對其進行更改。在大多數情況下,創建插件的主要原因是在虛擬建築的資料庫中執行更改。這些功能幾乎可以無限制地訪問虛擬建築資料庫。

2. 界面工具 Interface tools

這些功能允許為API插件創建圖形用戶界面(GUI)。

要在虛擬建築資料庫中執行更改,用戶必須首先能夠將其意圖傳達給插件,也就是說,圖形用戶界面是必需的。該API提供了大量增強的工具,讓開發人員可以針對特定問題選擇最合適的界面解決方案。

一個很好的例子是Profiler(事件探查器),它允許用戶創建旋轉和管狀物體,它依賴於平台獨立的對話管理器和API的輸入服務。

3. 集成工具 Integration tools

這些函數提供了各種方法技可能性,通過捕獲ARCHICAD中的「事件」,將API插件緊密集成到ARCHICAD環境中。

儘管一些API插件完全由用戶通過GUI操作控制,但在某些情況下,開發人員可能希望自動啟動事件,而無需任何用戶交互。自然,這兩種方法可以結合使用。 因此,通過將標準ARCHICAD事件與API插件相關聯,API插件可以緊密集成到ARCHICAD的工作環境中。

一個簡單的例子是「選擇」插件,它可以存儲和恢復用戶最喜歡的選擇(Selections)。它捕獲選擇的所有更改(選擇、取消選擇),並相應地修改其界面元素的狀態。

4. 開發工具 Development tools

這些是使開發更容易的各種軟體工具,它們的唯一目的是使開發更容易,更快速,不易出錯。

示例

下面我們將介紹由GRAPHISOFT開發的三個API插件示例:DWG/DXF I/O插件、ROOFMAKER、PROFILER。這些工具在其功能(I/O擴展功能,建築設計深化功能,通用建模功能)方面、打包方式方面(通用捆綁插件、大多數捆綁了本地不同的內容的插件、可以從GRAPHISOFT的網站下載免費的「好禮」)以及它們的外表方面,都有很大不同。它們代表了ARCHICAD API提供的多功能性特點,希望它能給開發夥伴的工作帶來一些啟發。

1. DWG/DXF I/O插件

這個插件負責ARCHICAD的DWG和DXF文件讀取和寫入功能。它是所有ARCHICAD軟體包的標準部分。因此,將它作為插件實施可能聽起來不合邏輯。但是,DWG和DXF格式通常會更改,這些更改與我們通常的升級周期不一致。DWG/DXF I/O插件使我們有機會在不改變ARCHICAD源代碼(費時費力)的情況下對DWG或DXF輸出進行調整。

插件的界面非常簡單,但其背後的技術相當複雜。

同樣,如果有必要的信息可用,API開發人員可以基於ArchiCAD創建幾乎針對任何CAD或CG軟體的I/O附件。

2. ROOFMAKER

RoofMaker,顧名思義,為ARCHICAD項目創建屋頂。建築師首先使用ARCHICAD的屋頂工具設計屋頂,然後使用RoofMaker的參數化特徵,通過點擊幾下滑鼠就可以創建帶梁、椽子等的複雜屋頂結構。新的屋頂對象(由API放置)為參數化的GDL庫部件,因此可以在以後輕鬆修改。

然而,問題在於歐洲和美國的屋頂結構是不同的(而不是說更複雜的日本屋頂!),將所有需求都放在一個工具中(並保持界面簡單?)是非常困難的。 出於這個原因,我們決定,RoofMaker應該是一個插件,而不是將一個屋頂創作工具硬編碼到ARCHICAD中,這些插件是為當地(Local)主要市場定製的。 因此,得益於API的插件架構,我們可以滿足本地需求,而不會影響核心應用的統一性。

需要注意的是,除了放置GDL對象的API插件外,RoofMaker的開發中還涉及相當多的GDL編程。實際上,這種用於放置和定義先前載入的GDL對象的插件模式,是最典型和最強大的插件解決方案之一,它結合了GDL和API的優勢。

3. PROFILER

經常有人這樣批評ARCHICAD,雖然GDL(幾何描述語言)確實是複雜幾何表達的一種非常通用的工具,但普通用戶很難學習GDL腳本。Profiler是一個附加工具,它將GDL的靈活幾何結構與ARCHICAD界面的易用性結合在一起。使用Profiler,用戶甚至無需打開GDL編輯器,就可以利用GDL的「旋轉」和「掃卷」命令的功能。然而,在這種情況下,API不會簡單地給先前載入的GDL對象提供參數,而是在運行中創建它們(當然,用戶必須命名它們)。這樣Profiler就可以在創建任意形式的結構時,保持更高的靈活性。

從長遠來看,ARCHICAD可能需要在核心應用程序中容納這些功能。然而,目前我們決定不將Profiler作為包裝的一部分,而是將其保留為「好禮」:一個附加工具,可以從GRAPHISOFT的網站免費下載。

總結

ArchiCADAPI V21版是一個成熟的現代化開發環境,GRAPHISOFT及其合作夥伴可以為用戶創造各種各樣的插件。GRAPHISOFT自己不僅是開發人員,同時也是API技術的用戶,致力於不斷升級API開發工具包以及後續版本的ARCHICAD。

GRAPHISOFT歡迎任何關於如何改進API功能的錯誤或建議的報告。 GRAPHISOFT將盡最大努力將這些請求合併到API開發工具包的未來版本中。

參考資料鏈接:

http://archicadapi.graphisoft.com/documentation/api-white-paper。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 萬間科技 的精彩文章:

TAG:萬間科技 |