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二次開發-修改圖表顏色
批量升級族文件

TAG:二次开发 | BIM | Autodesk |