齊成龍,王永
(1.中國(guó)鐵路設(shè)計(jì)集團(tuán)有限公司,天津 300308;2.北京交通大學(xué)經(jīng)濟(jì)管理學(xué)院,北京 100044)
Tekla 作為一款優(yōu)秀的平臺(tái)性BIM 設(shè)計(jì)軟件,具有強(qiáng)大的混凝土、鋼筋三維建模及二維出圖功能[1]。Tekla 傾向于提供鋼筋混凝土結(jié)構(gòu)的底層建模工具,對(duì)于特定的結(jié)構(gòu)類(lèi)型,如果僅通過(guò)軟件提供的人機(jī)交互界面來(lái)實(shí)現(xiàn)三維建模及二維出圖目標(biāo),則需要用戶大量手動(dòng)修改和重復(fù)性操作,不僅降低了效率,也不利于整個(gè)工程的質(zhì)量控制[2]。因此,為了充分利用Tekla軟件的鋼筋設(shè)計(jì)功能,針對(duì)具體工程結(jié)構(gòu)類(lèi)型開(kāi)發(fā)相應(yīng)設(shè)計(jì)工具就顯得很有必要。目前已有的框構(gòu)橋配筋設(shè)計(jì)系統(tǒng)(FUBS)是在Midas 計(jì)算出的框構(gòu)橋內(nèi)力結(jié)果基礎(chǔ)上,開(kāi)發(fā)出的框構(gòu)橋設(shè)計(jì)后處理程序。FUBS 可以計(jì)算出滿足框構(gòu)橋受力和構(gòu)造要求的最低鋼筋配置,其設(shè)計(jì)結(jié)果以文本文件的形式存在。通過(guò)C#語(yǔ)言調(diào)用Tekla 接口開(kāi)發(fā)設(shè)計(jì)工具,能夠讀入FUBS 的計(jì)算結(jié)果,并開(kāi)放交互界面,用戶根據(jù)個(gè)性化需求修改FUBS 計(jì)算結(jié)果,最終自動(dòng)生成框構(gòu)橋三維鋼筋模型、二維工程圖并統(tǒng)計(jì)數(shù)量。
在Tekla-API 中,有2個(gè)用于生成鋼筋的類(lèi):RebarGroup 類(lèi)代表鋼筋組,SingleRebar 類(lèi)代表單根鋼筋,二者的使用方法類(lèi)似。在此以矩形截面梁側(cè)表面鋼筋為例介紹RebarGroup類(lèi)的關(guān)鍵屬性。
Tekla 建立的帶有側(cè)面鋼筋的矩形截面梁見(jiàn)圖1,PT1-PT2 和PT1'-PT2'為確定鋼筋形狀的構(gòu)造點(diǎn),這些點(diǎn)也是位于梁側(cè)表面處的混凝土角點(diǎn),代表了鋼筋組的掃略端點(diǎn)及形狀轉(zhuǎn)折點(diǎn)。

圖1 Tekla建立的帶有側(cè)面鋼筋的矩形截面梁
本例在梁的起止斷面分別使用2個(gè)點(diǎn)描述鋼筋幾何形狀,由于鋼筋位于混凝土結(jié)構(gòu)內(nèi)部,還需要確定保護(hù)層厚度c,以得到鋼筋的精確幾何形狀。鋼筋縱向排列方式見(jiàn)圖2,為了得到鋼筋組沿梁縱向的排列方式,需要先確定首根鋼筋偏離起點(diǎn)的距離s1,然后再確定組內(nèi)各鋼筋的間距排列規(guī)則n×s2。

圖2 鋼筋縱向排列方式
與前述梁內(nèi)鋼筋組布置規(guī)則的確定過(guò)程相對(duì)應(yīng),Tekla-API中RebarGroup類(lèi)有如下關(guān)鍵屬性[3]:
(1)Polygons:用于描述鋼筋形狀的多邊形,本屬性以泛型的方式存在,每個(gè)泛型元素是1個(gè)Polygon 類(lèi)型的對(duì)象,而每個(gè)Polygon 是由若干個(gè)點(diǎn)組成的折線。以前述梁側(cè)鋼筋組為例,其Polygons 屬性值為2個(gè)Polygon,組成第 1個(gè) Polygon 的點(diǎn)是 PT1,PT2,組成第 2個(gè)Polygon 的點(diǎn)是PT1',PT2'。在實(shí)際應(yīng)用過(guò)程中,組成Polygon 的點(diǎn)可以不是混凝土結(jié)構(gòu)的構(gòu)造點(diǎn),可以由用戶根據(jù)需要自行生成。
(2)Spacings:鋼筋組中各鋼筋的間距布置規(guī)則。以前述梁側(cè)鋼筋組為例,該屬性值可用n×s2 表示,如果鋼筋并非均勻布置,可用n1×s1+n2×s2表示。
(3)OnPlaneOffsets:平面內(nèi)偏移值,代表鋼筋各肢的保護(hù)層厚度。以前述梁側(cè)鋼筋組為例,該屬性值可用c表示。
(4)FromPlaneOffset:為了表達(dá)鋼筋組沿梁縱向的分布規(guī)律,除了使用Spacings屬性值描述鋼筋之間的間距情況以外,還需要描述第1根鋼筋與起點(diǎn)之間的相對(duì)位置關(guān)系,本例中即為s1。
建立CreateRebars_Base.cs 作為鋼筋建模基礎(chǔ)類(lèi),其包含2個(gè)方法,這2個(gè)方法分別通過(guò)輸入鋼筋組和單根鋼筋所需各關(guān)鍵屬性值來(lái)生成RebarGroup 和SingleRebar類(lèi)的實(shí)例。
每種鋼筋(骨架鋼筋、橫橋向鋼筋、拉筋、頂板鈍角加強(qiáng)鋼筋)的幾何形狀和空間布置范圍都必須通過(guò)與混凝土主體結(jié)構(gòu)的相對(duì)位置關(guān)系來(lái)表達(dá)。因此,首先提取主體結(jié)構(gòu)的關(guān)鍵點(diǎn),在鋼筋建模過(guò)程中調(diào)用。
采用Tekla-API 當(dāng)中的RebarGroup 類(lèi),以鋼筋組的方式創(chuàng)建拉筋,每根拉筋的輪廓是1條直線,因此每個(gè)拉筋鋼筋組的Polygons 屬性值由圖3 所示的4個(gè)控制點(diǎn)組成,這4個(gè)控制點(diǎn)分別位于框構(gòu)橫橋向兩側(cè)面。
由于框構(gòu)頂?shù)装搴蛪w的拉筋布置規(guī)律不同,并且采用梅花形布置,在此分別對(duì)頂?shù)装搴蛪w建模過(guò)程中組成Polygons 屬性值的控制點(diǎn)生成方法進(jìn)行研究[4]。

圖3 拉筋鋼筋組Polygons屬性值
該函數(shù)的聲明部分如下:
public void Transverse_Rebar_GeParam (TSG.Point Point_1,TSG.Point Point_2,bool Bool_Mid,bool Bool_Top,boolBool_Stagger,outTSG.Point[,]list_array_result)
該函數(shù)可以對(duì)各頂?shù)装宀冀顓^(qū)域進(jìn)行處理,生成相應(yīng)區(qū)域所有鋼筋組的Polygons屬性值控制點(diǎn)。
本函數(shù)各輸入輸出參數(shù)的含義是:
(1)Point_1:當(dāng)前布筋區(qū)域位于頂板下緣或底板上緣的第1個(gè)邊界點(diǎn)。
(2)Point_2:當(dāng)前布筋區(qū)域位于頂板下緣或底板上緣的第2個(gè)邊界點(diǎn)。
頂板跨中拉筋區(qū)域見(jiàn)圖4,圖中表示了頂板跨中拉筋區(qū)域的邊界點(diǎn)含義,其他區(qū)域邊界點(diǎn)的含義與此類(lèi)似。
(3)Bool_Mid:布爾值,對(duì)于近端在中心的情況,確定是否在最后加1根。在此,近端點(diǎn)指的是與縱橋向中心距離更小的點(diǎn)。
出于程序內(nèi)部算法的需求,Point_1 和Point_2 這2個(gè)區(qū)域邊界點(diǎn)必須在順橋向中心的同一側(cè)。對(duì)于3 孔框構(gòu)的中跨頂?shù)装鍏^(qū)域,會(huì)存在拉筋重復(fù)建模的情況。該參數(shù)的作用是,對(duì)于某個(gè)區(qū)域的Polygons控制點(diǎn),用戶可以選擇是否創(chuàng)建中心位置拉筋,在調(diào)用該函數(shù)時(shí),對(duì)于圖4 所示區(qū)域1 的情況,Bool_Mid=true;對(duì)于區(qū)域2 的情況,Bool_Mid=false。采用這種方法,可以避免重復(fù)建模。
(4)Bool_Top:布爾值,確定是否位于頂板。
對(duì)于頂、底板,其拉筋的Polygons 控制點(diǎn)計(jì)算方法不同,用戶調(diào)用此函數(shù)時(shí),程序內(nèi)部通過(guò)該參數(shù)進(jìn)行區(qū)分計(jì)算。當(dāng)程序通過(guò)該參數(shù)獲取頂、底板位置信息以后,調(diào)用框構(gòu)主體關(guān)鍵點(diǎn),選擇性地獲取頂板或底板控制點(diǎn)數(shù)據(jù),繼而通過(guò)數(shù)學(xué)運(yùn)算生成所需控制點(diǎn)坐標(biāo)。

圖4 頂板跨中拉筋區(qū)域
(5)Bool_Stagger:布爾值,是否相錯(cuò)1個(gè)橫向鋼筋間距。
頂?shù)装謇畹拿坊ㄐ尾贾貌捎妹? 組鋼筋作為1個(gè)循環(huán)周期的方式(見(jiàn)圖5),第2組鋼筋與第1組鋼筋相錯(cuò)1個(gè)鋼筋間距,2 組鋼筋布置結(jié)束以后開(kāi)始下一次循環(huán)。因此,Bool_Stagger 輸入?yún)?shù)的這2 種可選情況為頂?shù)装謇畹拿坊ㄐ尾贾脛?chuàng)造了條件。

圖5 頂?shù)装謇蠲坊ㄐ尾贾檬疽鈭D
(6)list_array_result:輸出參數(shù)。該參數(shù)是1個(gè)大小為n×4 的不定長(zhǎng)數(shù)組,數(shù)據(jù)類(lèi)型是Tekla.Structures.Geometry3d.Point。
n表示當(dāng)前拉筋布置區(qū)域的鋼筋組數(shù)目,每個(gè)鋼筋組的4個(gè)Polygons控制點(diǎn)由list_array_result數(shù)組的第2維4個(gè)元素組成。
該函數(shù)的聲明部分如下:
public void Vertical_Rebar_GeParam(double Coord_y_1,double Coord_y_2,int Stagger_Num,out TSG.Point[,]Array_result_up,out TSG.Point[,]Array_result_down)
該函數(shù)可以對(duì)墻體布筋區(qū)域進(jìn)行處理,生成拉筋鋼筋組的Polygons控制點(diǎn)。
本函數(shù)各輸入輸出參數(shù)的含義是:
(1)Coord_y_1:墻體一側(cè)邊界的y坐標(biāo)值。
(2)Coord_y_2:墻體另一側(cè)邊界的y坐標(biāo)值。
其中,y指向框構(gòu)順橋向,原點(diǎn)位于頂板頂中心位置。
(3)Stagger_Num:此參數(shù)的3個(gè)可選數(shù)據(jù)是0、1、2,這3個(gè)可選數(shù)據(jù)的具體含義分別為:不相錯(cuò)、相錯(cuò)1個(gè)間距、相錯(cuò)2個(gè)間距。
墻體拉筋的梅花形布置采用每3 組鋼筋作為1個(gè)循環(huán)周期的方式(見(jiàn)圖6),第2組鋼筋與第1組鋼筋相錯(cuò)1個(gè)鋼筋間距,第3 組鋼筋與第1 組鋼筋相錯(cuò)2個(gè)鋼筋間距,3 組鋼筋布置結(jié)束以后開(kāi)始下一次循環(huán)。因此,Stagger_Num 輸入?yún)?shù)的這3個(gè)可選數(shù)據(jù)為墻體拉筋的梅花形布置創(chuàng)造了條件。

圖6 墻體拉筋布置示意圖
對(duì)于每個(gè)墻體,其拉筋模型區(qū)域以豎直方向中心線為界,分為上下2個(gè)部分。Vertical_Rebar_GeParam()函數(shù)需要輸出與這2個(gè)部分相對(duì)應(yīng)的Polygons 控制點(diǎn)數(shù)組[5]。
(4)Array_result_up:輸出參數(shù)。表示豎直方向中心線以上拉筋組的Polygons 控制點(diǎn)。該參數(shù)是1個(gè)大小為n×4 的數(shù)組,數(shù)據(jù)類(lèi)型是Tekla.Structures.Geometry3d.Point。
n表示豎直方向中心線以上部分的拉筋鋼筋組數(shù)目,每個(gè)鋼筋組的4個(gè)Polygons 控制點(diǎn)由Array_result_up數(shù)組的第2維4個(gè)元素組成。
(5)Array_result_down:輸出參數(shù)。表示豎直方向中心線以下拉筋組的Polygons 控制點(diǎn)。該參數(shù)是1個(gè)大小為n×4 的數(shù)組,數(shù)據(jù)類(lèi)型是Tekla.Structures.Geometry3d.Point。
n表示豎直方向中心線以上部分的拉筋鋼筋組數(shù)目,每個(gè)鋼筋組的4個(gè)Polygons 控制點(diǎn),由Array_result_down數(shù)組的第2維4個(gè)元素組成。
與頂?shù)装謇铑?lèi)似,Array_result_up,Array_result_down 兩個(gè)區(qū)域也存在重復(fù)建模的情況,函數(shù)內(nèi)部已經(jīng)對(duì)這種情況進(jìn)行了處理[6],一側(cè)區(qū)域的重疊拉筋被刪除,從而避免了拉筋重疊。
拉筋建模過(guò)程需要根據(jù)其在框構(gòu)中的具體位置區(qū)別對(duì)待。對(duì)于頂?shù)装搴蛪w拉筋,分別調(diào)用Transverse_Rebar_GeParam()和Vertical_Rebar_GeParam()函數(shù),獲取所有拉筋鋼筋組的Polygons 控制點(diǎn)[7]。將這2個(gè)函數(shù)生成的控制點(diǎn)賦予鋼筋建模基礎(chǔ)類(lèi)CreateRebars_Base.cs的相應(yīng)方法,從而創(chuàng)建所有拉筋模型[8]。
三維建模程序讀入FUBS 輸出的文本文件,并個(gè)性化確定結(jié)構(gòu)尺寸后,打開(kāi)用戶交互界面。該交互窗口允許用戶手動(dòng)修改經(jīng)過(guò)FUBS 初次計(jì)算出的鋼筋配置結(jié)果,其中包含對(duì)鋼筋型號(hào)、直徑、間距等拉筋參數(shù)的設(shè)置(見(jiàn)圖7)。由該程序生成的框構(gòu)頂板與邊墻相交位置處的橫橋向鋼筋及拉筋模型見(jiàn)圖8。

圖7 配筋信息修改界面

圖8 框構(gòu)頂板與邊墻相交位置處的橫橋向鋼筋及拉筋模型
作為信息化的重要手段,BIM是實(shí)現(xiàn)建設(shè)工程項(xiàng)目全生命周期管理的核心技術(shù)[9-10],同時(shí)正引發(fā)建筑行業(yè)一次史無(wú)前例的徹底變革。BIM技術(shù)通過(guò)利用數(shù)字模型將貫穿于建筑全生命周期的各種建筑信息組織成一個(gè)整體,能顯著提高工程質(zhì)量和作業(yè)效率,為建筑業(yè)帶來(lái)巨大效益。在建筑業(yè)中,橋梁工程的信息化落后于傳統(tǒng)房屋建筑工程,因此更加需要大力發(fā)展橋梁信息模型,提高橋梁設(shè)計(jì)水平,開(kāi)發(fā)針對(duì)各種類(lèi)型橋梁工程結(jié)構(gòu)的BIM 設(shè)計(jì)工具[11]。上述基于Tekla 二次開(kāi)發(fā)的框構(gòu)橋設(shè)計(jì)工具,可實(shí)現(xiàn)與框構(gòu)橋分析計(jì)算程序的無(wú)縫銜接,以及BIM 快速建模和出圖,闡述該程序在拉筋建模過(guò)程的總體研發(fā)思路,對(duì)逐步完善橋梁信息模型的發(fā)展具有指導(dǎo)性?xún)r(jià)值。