Civil3D部件庫二次開發指南
土建領域的兩大BIM軟體Civil3D和Powercivil是工程師玩BIM的必備神器,可它倆主要針對的是道路Roads專業,其他帶狀工程專業想要用它,最麻煩也是最基礎的,就是部件庫(類似revit的族庫)的建立了。
通常來講,兩大軟體都有自帶的編輯器,Civil3D甚至有單獨的部件庫編輯器軟體Subassembly Composer(類似revit的Dynamo)給大家做複雜的斷面設計。
然鵝,不同專業設計中會出現的各種奇葩需求,這時只能通過二次開發嵌入一些演算法來解決liao。說到二次開發,Autodesk的嘴角揚起了一絲微笑(據說年底Bentley也要放API大招了)。
然鵝鵝,Civil3D的開發說明(Developers Guide)竟然只有英文版,生活好艱辛。
鵝然,生活還是要繼續的,經過不斷的摸索與實踐,Civil3D部件庫二次開發流程及注意如下:(1)文件架構
最終你要生成的是一個.pkt文件,該文件實際上是一個.zip文件改了後綴的樣子。既然是zip,那應該就是很多文件的集合咯?對,它是以下四種文件的集合,功能見紅色標註
實際開發中,只需要atc和dll文件就行了,jpg和chm可以最終發布的時候再去編輯。
(2)atc文件
atc文件相當於pkt的戶口本,裡面包含了pkt文件系統里的唯一認證碼GUID、各文件名稱和輸入參數。
GUID可以在VS里生成,懶一點的直接改一兩個數字。
文件名就是四個文件的名字了。
而輸入參數這一塊,雖然help要求都放,但實際上是不需要的,數值參數還有邏輯目標只需要在dll中定義就ok了,枚舉需要放在atc中。另外atc的參數名必須英文,但是dll里可定義中文參數名。
(3)dll文件
它是pkt的核心,
那麼,用什麼來實現呢?——.NET
那麼,怎麼搞.NET呢?——Visual Studio,Framework版本什麼的按要求來
那麼,VS里用什麼語言呢?——VB,如果你跟我一樣懶 。
整個dll里的架構就是幫助文件所說的,如下圖所示,內容不需要做任何更改。
所謂的二次開發需要做的就是把subassemblies文件夾下的vb文件重寫四個關鍵函數:
前三個重寫就是添加一些參數,具體可以到.Program FilesAutodeskAutoCAD 201XC3DSampleCivil 3D APIC3DStockSubassembliesSubassemblies里任意拿一個學習參考下,核心在於到drawimplement里把你想要的各種演算法、畫法給融入進去,這裡就要各種閃轉騰挪的使用API(Civil 3D .NET API Reference)了。(4)其他注意
生成過程中必然會有無數次調試(粗略估計,一個功能至少50個pkt^_^),當你按照1.pkt,2.pkt,3.pkt無限循環的時候,別忘了及時清空C:ProgramDataAutodeskC3D 201XchsImported Tools里的相應文件夾,Civil3D讀取用戶自定義pkt是就是在這裡存貨的,下次導入的不一定被覆蓋,穩妥的方式是導入前及時清空。
——————————————————————————
理解了以上的中文解說,基本上就可以開始做你想要的複雜部件了。
與Revit的族庫建設一樣,部件庫建設是道路等帶狀工程應用BIM做設計的關鍵點,否則設計效率根本無法提高。Civil3D為我們提供了很好的大平台,但它必然無法精細的滿足每個專業的特殊需求,因此,這「最後一公里」還是需要我們自己來走完!
如果你走出了效果,走出了風采,請記得及時show出來哦,帶領大家一起用BIM多拿票子少加班~~
推薦閱讀:
※superset二次開發-部署後的性能優化
※Win7x64配置達索CAA開發環境時需要注意哪些地方?
※Part Specification Container的使用方法
※superset二次開發-修改圖表顏色
※批量升級族文件