奚春林

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