奚春林

【摘要】某國際機場屋頂鋼結構網殼基于曲面布置弧形構件,所有構件的板厚、螺栓選擇、配筋的類型等根據自身或者周邊進行計算后,選取不同的類型及規格。因此深化難度大、定位困難,傳統手動建模效率低、出錯率高。本文介紹一種通過Rhino軟件進行曲面、控制線建立,通過開發自定義Grasshopper組件與Tekla Structures進行參數化交互式BIM建模的一種程序設計思路,從而達到簡化BIM建模流程、提高建模效率。
【關鍵詞】鋼結構深化設計;BIM;Rhino;Grasshopper;Tekla Structures;參數化設計;交互式建模
1.屋面鋼結構深化概況
某國際機場采用三角形狀設計,屋面覆蓋面積約30萬平方米,屋面結構有40跨弧形單元,每跨中包含4~5個網殼單元,每個單元中包含136~510個網殼盒子組成。網殼盒子采用鋼板組合1.5~4.5米大小的盒子,盒子底部澆筑160mm的混凝土,盒子之間采用螺栓連接后組成結構體系,鋼板盒子總數達到40000多個。由于組成盒子的底部需要按照建筑造型切割為弧形,造型又為雙曲漸變,因此每個構件相似但又不相同。盒子的板厚由垂直方向的長度進行控制,連接螺栓數量按照連續跨設計(連接板左右二個單元的跨度尺寸進行控制),盒子底部設置混凝土配筋體系,同時單元中間部分盒子又開有天窗孔洞。參照國際慣例設計圖紙僅提供了控制點坐標以及節點的計算原則,需要按照控制點位及計算原則搭設LOD400精度等級的BIM深化加工模型進行生產、安裝。
2.本工程屋面鋼結構深化BIM模型的實施思路
2.1 深化模型軟件分析
在鋼結構深化設計階段BIM搭建使用最為廣泛的軟件為Tekla Structures軟件,該軟件能夠在材料或結構十分復雜的情況下,實現準確細致、極易施工的三維模型建模和管理。對深化加工圖紙、加工數據及CNC加工銜接度高。在搭建模型均基于BIM對象(如:梁、板、螺栓對象),但對曲面不規則適用性差。需要其他軟件在三維空間中創建點、線導入后作為建模參考,才能創建BIM對象。
對于曲面造型建筑領域使用最廣泛的為Rhino軟件,Rhino軟件是基于NURBS為主三維建模軟件。能通過點、線精確創建NURBS曲面,快速便捷的通過曲面創建構件的基準線、基準點。但Rhino是基于點、線、面的三維建模軟件,并非基于BIM對象,后期出圖、管理、材料數據提取較為困難。
Grasshopper是基于Rhino軟件下可視化程序設計建模的插件,通過編寫建模邏輯算法,機械性的重復操作可被計算機的循環運算取代。程序設計簡單、快捷,與Rhino模型指令結合度高,能提供復雜的建模以及大幅度提高工作效率,同時邏輯計算模塊可以自主進行二次開發。
結合本項目的特點,通過對目前行業內使用最為成熟、廣泛的軟件進行分析、選取,本工程屋面鋼結構深化最終確定使用Rhino、Grasshopper與Tekla Structures各自優點進行結合使用。
2.2 BIM模型搭建的實施思路
本工程屋面鋼結構深化先由Rhino建立控制面,通過Grasshopper編制邏輯程序模塊,由建模參數計算后通過基準面建立控制線、同時建立實體模型,由二次開發組件與Tekla Structures進行交互式建模,最終由Tekla Structures進行出圖、加工Grasshopper數據、CNC數據提取。二個軟件內部數據結構不同,Rhino實體模型導入并不能夠進行后期出圖和數據提取,交互式建模采用位置信息、構件屬性數據的傳遞,為保證Tekla Structures的模型準確性,后期把Rhino實體模型導入Tekla Structures對形體進行一次校對、復核。最終在Tekla Structures中以BIM模型對象形式呈現,與其他主體結構體系軟件保持一致性,保證整個項目的銜接性及可靠性。
3.鋼結構參數化深化設計
3.1 核心組件的二次開發介紹
為打通Rhino與Tekla Structures之間的數據交互,通過C#開發Grasshopper的自定義組件。對本次屋頂鋼結構深化節點進行盤點,需要開發的Tekla Structures的建模功能有直梁、折梁、多邊形邊、螺栓以及物體切割。結合Grasshopper提供的SDK開發幫助、Tekla Structures的OpenAPI_Reference幫助文件進行二次開發。Grasshopper自定義組件開發的架構如下:
提取Rhino中的參考線、參考點的數據來建立Tekla Structures中的對象,以直梁為例:
由于Grasshopper一旦數據輸入完整會即時計算,為防止不必要的運算和構件重復創建,我們在開發模塊中設置了Eanble開關,僅在確認Rhino中的輔助線無誤時才會對Tekla Structures進行交互建模。
本工程的構件是基于雙曲曲面,大部分構件在三維空間中存在角度偏轉,在參數化建模時雖然可以對偏轉角度進行設置,但角度的計算對數學邏輯要求極高、難度極大。為解決角度偏轉問題,在完成輔助線時引入與構件對齊的Plan與Tekla Structures中的用戶坐標系進行匹配。在Tekla Structures建模前先建立與Rhino中Plan一致的用戶坐標系,傳遞物體的控制點前先使用矩陣向量從世界坐標系轉換為局部坐標系(TransformationMatrixToLocal.Transform)后再進行賦值創建。在局部坐標系中創建的物體僅需對坐標Plan進行控制,基于世界坐標系的角度偏轉,軟件自動完成計算。通過局部坐標系有效的統一了不同構件的三維空間位置。
建立完的Tekla Structures物體提取Guid值作為參數進行輸出,Guid值在Tekla Structures是唯一編碼,為后期再次查詢、操作物體提供查找依據(如:在該物體上創建螺栓、切割)。
3.2 參數化建模程序設計
3.2.1 深化逆向搭建控制面、控制線
在創建屋頂鋼結構BIM模型前先逆向建立控制曲面,通過曲面進行控制生成控制線來進行控制物體的位置。從設計圖紙中提取坐標點至Excel,同樣編制Grasshopper的程序讀取Excel的坐標點進行展點,展點的同時對點的U、V值進行編號,后期網殼盒子的構件編號與U、V值進行對應,防止相似不相同的構件查找困難。點通過Grasshopper安裝坐標位置(X、Y值)進行排序后連成成為曲線,由網格曲線群來進行控制曲面。網殼盒子的板件、鋼筋位置均由網格曲線及曲面來進行位置控制。
3.3.2 參數化自動建模設計
雖然Grasshopper做好數據匹配,每個單元可以一次性完成建模,但本工程深化設計時規格、尺寸、數量需要計算后由參數進行驅動【如:U(V)向板厚由V(U)向的長度確定;節點板大小、螺栓數量有左右二邊的二分之一的長度確定;配筋的類型及尺寸有跨度確定;邊跨和中間跨的取值有完全相同】,數據匹配難度較大。因此我們在設計深化程序時簡化設計流程、同時選取的參數可以再進行一次人工復核,自動化建模采用一個網格計算一次,對中間必要條件的參數進行標注顯示,人工復核時可通過標注的參數進行判定。
Grasshopper特性是一旦有條件輸入或數據變更,便立即參與計算或者部分條件計算,我們計算的輸入條件較多(四個網格邊線及底部偏移參考面和周邊的八個網格線等),且工程計算又較為復雜、耗時較多。在輸入條件中設置一個計算開關,輸入時僅對輸入數據進行標注確認,并不直接參與輔助線、實體模型的計算建立,完成所有參數輸入后,計算開關設置為True后才會開計算和建立模型。計算開關的建立改善條件輸入時的效率,避免產生不必要的計算。
參數驅動我們采用c# Script模塊直接輸入代碼進行計算判定,此部分代碼為本項目專用、無通用性,因此無需編譯單獨的插件模塊。Script模塊優點:在計算時即時編譯代碼,可以實時調整計算代碼,方便調整參數及排除Bug。
在設計參數化自動建模程序時,為優化計算、數據的統一性、排Bug的便捷性,我們采用模塊化的設計思路。按照功能打成Group組,如:參考面計算、主構件板塊、連接板、檁拖、鋼配筋等。對于一些重復使用的功能打包成為Cluster族,不但可以簡化主程序,修改功能或除Bug時僅需修改一次即可。
通過上述的程序設計思路,選用Rhino三維空間建模功能、Grasshopper的參數化、自動化功能、Tekla Structures 實體化構件、加工圖、加工數據提取功能,通過開放的軟件接口把三者有機的進行結合,把各自軟件的優點放大、揚長避短,使本次的屋頂鋼結構深化設計達到效率最高、深化更加便捷。
參考文獻
[1] RhinoCommon SDK documentation:Http://developer.rhino3d.com/api/RhinoCommonWin/html/N_Rhino.htm
[2] TeklaOpenAPI_Reference.chm:軟件安裝文件夾\Tekla Structures\18.1\nt\help\enu
[3] Grasshopper SDK :http://developer.rhino3d.com/5/guides/#grasshopper
[4]王奕修. Grasshopper 入門&晉級必備手冊. 清華大學出版社,2013年10月第1版
(作者單位:上海精銳金屬建筑系統有限公司 )
【中圖分類號】TU318
【文獻標識碼】A
【文章編號】1671-3362(2019)06-0060-04