齊成龍,王永
(1.中國鐵路設(shè)計集團有限公司,天津 300308;2.北京交通大學經(jīng)濟管理學院,北京 100044)
Tekla 作為一款優(yōu)秀的平臺性BIM 設(shè)計軟件,具有強大的混凝土、鋼筋三維建模及二維出圖功能[1]。Tekla 傾向于提供鋼筋混凝土結(jié)構(gòu)的底層建模工具,對于特定的結(jié)構(gòu)類型,如果僅通過軟件提供的人機交互界面來實現(xiàn)三維建模及二維出圖目標,則需要用戶大量手動修改和重復(fù)性操作,不僅降低了效率,也不利于整個工程的質(zhì)量控制[2]。因此,為了充分利用Tekla軟件的鋼筋設(shè)計功能,針對具體工程結(jié)構(gòu)類型開發(fā)相應(yīng)設(shè)計工具就顯得很有必要。目前已有的框構(gòu)橋配筋設(shè)計系統(tǒng)(FUBS)是在Midas 計算出的框構(gòu)橋內(nèi)力結(jié)果基礎(chǔ)上,開發(fā)出的框構(gòu)橋設(shè)計后處理程序。FUBS 可以計算出滿足框構(gòu)橋受力和構(gòu)造要求的最低鋼筋配置,其設(shè)計結(jié)果以文本文件的形式存在。通過C#語言調(diào)用Tekla 接口開發(fā)設(shè)計工具,能夠讀入FUBS 的計算結(jié)果,并開放交互界面,用戶根據(jù)個性化需求修改FUBS 計算結(jié)果,最終自動生成框構(gòu)橋三維鋼筋模型、二維工程圖并統(tǒng)計數(shù)量。
在Tekla-API 中,有2個用于生成鋼筋的類:RebarGroup 類代表鋼筋組,SingleRebar 類代表單根鋼筋,二者的使用方法類似。在此以矩形截面梁側(cè)表面鋼筋為例介紹RebarGroup類的關(guān)鍵屬性。
Tekla 建立的帶有側(cè)面鋼筋的矩形截面梁見圖1,PT1-PT2 和PT1'-PT2'為確定鋼筋形狀的構(gòu)造點,這些點也是位于梁側(cè)表面處的混凝土角點,代表了鋼筋組的掃略端點及形狀轉(zhuǎn)折點。
圖1 Tekla建立的帶有側(cè)面鋼筋的矩形截面梁
本例在梁的起止斷面分別使用2個點描述鋼筋幾何形狀,由于鋼筋位于混凝土結(jié)構(gòu)內(nèi)部,還需要確定保護層厚度c,以得到鋼筋的精確幾何形狀。鋼筋縱向排列方式見圖2,為了得到鋼筋組沿梁縱向的排列方式,需要先確定首根鋼筋偏離起點的距離s1,然后再確定組內(nèi)各鋼筋的間距排列規(guī)則n×s2。
圖2 鋼筋縱向排列方式
與前述梁內(nèi)鋼筋組布置規(guī)則的確定過程相對應(yīng),Tekla-API中RebarGroup類有如下關(guān)鍵屬性[3]:
(1)Polygons:用于描述鋼筋形狀的多邊形,本屬性以泛型的方式存在,每個泛型元素是1個Polygon 類型的對象,而每個Polygon 是由若干個點組成的折線。以前述梁側(cè)鋼筋組為例,其Polygons 屬性值為2個Polygon,組成第 1個 Polygon 的點是 PT1,PT2,組成第 2個Polygon 的點是PT1',PT2'。在實際應(yīng)用過程中,組成Polygon 的點可以不是混凝土結(jié)構(gòu)的構(gòu)造點,可以由用戶根據(jù)需要自行生成。
(2)Spacings:鋼筋組中各鋼筋的間距布置規(guī)則。以前述梁側(cè)鋼筋組為例,該屬性值可用n×s2 表示,如果鋼筋并非均勻布置,可用n1×s1+n2×s2表示。
(3)OnPlaneOffsets:平面內(nèi)偏移值,代表鋼筋各肢的保護層厚度。以前述梁側(cè)鋼筋組為例,該屬性值可用c表示。
(4)FromPlaneOffset:為了表達鋼筋組沿梁縱向的分布規(guī)律,除了使用Spacings屬性值描述鋼筋之間的間距情況以外,還需要描述第1根鋼筋與起點之間的相對位置關(guān)系,本例中即為s1。
建立CreateRebars_Base.cs 作為鋼筋建模基礎(chǔ)類,其包含2個方法,這2個方法分別通過輸入鋼筋組和單根鋼筋所需各關(guān)鍵屬性值來生成RebarGroup 和SingleRebar類的實例。
每種鋼筋(骨架鋼筋、橫橋向鋼筋、拉筋、頂板鈍角加強鋼筋)的幾何形狀和空間布置范圍都必須通過與混凝土主體結(jié)構(gòu)的相對位置關(guān)系來表達。因此,首先提取主體結(jié)構(gòu)的關(guān)鍵點,在鋼筋建模過程中調(diào)用。
采用Tekla-API 當中的RebarGroup 類,以鋼筋組的方式創(chuàng)建拉筋,每根拉筋的輪廓是1條直線,因此每個拉筋鋼筋組的Polygons 屬性值由圖3 所示的4個控制點組成,這4個控制點分別位于框構(gòu)橫橋向兩側(cè)面。
由于框構(gòu)頂?shù)装搴蛪w的拉筋布置規(guī)律不同,并且采用梅花形布置,在此分別對頂?shù)装搴蛪w建模過程中組成Polygons 屬性值的控制點生成方法進行研究[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ù)可以對各頂?shù)装宀冀顓^(qū)域進行處理,生成相應(yīng)區(qū)域所有鋼筋組的Polygons屬性值控制點。
本函數(shù)各輸入輸出參數(shù)的含義是:
(1)Point_1:當前布筋區(qū)域位于頂板下緣或底板上緣的第1個邊界點。
(2)Point_2:當前布筋區(qū)域位于頂板下緣或底板上緣的第2個邊界點。
頂板跨中拉筋區(qū)域見圖4,圖中表示了頂板跨中拉筋區(qū)域的邊界點含義,其他區(qū)域邊界點的含義與此類似。
(3)Bool_Mid:布爾值,對于近端在中心的情況,確定是否在最后加1根。在此,近端點指的是與縱橋向中心距離更小的點。
出于程序內(nèi)部算法的需求,Point_1 和Point_2 這2個區(qū)域邊界點必須在順橋向中心的同一側(cè)。對于3 孔框構(gòu)的中跨頂?shù)装鍏^(qū)域,會存在拉筋重復(fù)建模的情況。該參數(shù)的作用是,對于某個區(qū)域的Polygons控制點,用戶可以選擇是否創(chuàng)建中心位置拉筋,在調(diào)用該函數(shù)時,對于圖4 所示區(qū)域1 的情況,Bool_Mid=true;對于區(qū)域2 的情況,Bool_Mid=false。采用這種方法,可以避免重復(fù)建模。
(4)Bool_Top:布爾值,確定是否位于頂板。
對于頂、底板,其拉筋的Polygons 控制點計算方法不同,用戶調(diào)用此函數(shù)時,程序內(nèi)部通過該參數(shù)進行區(qū)分計算。當程序通過該參數(shù)獲取頂、底板位置信息以后,調(diào)用框構(gòu)主體關(guān)鍵點,選擇性地獲取頂板或底板控制點數(shù)據(jù),繼而通過數(shù)學運算生成所需控制點坐標。
圖4 頂板跨中拉筋區(qū)域
(5)Bool_Stagger:布爾值,是否相錯1個橫向鋼筋間距。
頂?shù)装謇畹拿坊ㄐ尾贾貌捎妹? 組鋼筋作為1個循環(huán)周期的方式(見圖5),第2組鋼筋與第1組鋼筋相錯1個鋼筋間距,2 組鋼筋布置結(jié)束以后開始下一次循環(huán)。因此,Bool_Stagger 輸入?yún)?shù)的這2 種可選情況為頂?shù)装謇畹拿坊ㄐ尾贾脛?chuàng)造了條件。
圖5 頂?shù)装謇蠲坊ㄐ尾贾檬疽鈭D
(6)list_array_result:輸出參數(shù)。該參數(shù)是1個大小為n×4 的不定長數(shù)組,數(shù)據(jù)類型是Tekla.Structures.Geometry3d.Point。
n表示當前拉筋布置區(qū)域的鋼筋組數(shù)目,每個鋼筋組的4個Polygons控制點由list_array_result數(shù)組的第2維4個元素組成。
該函數(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ù)可以對墻體布筋區(qū)域進行處理,生成拉筋鋼筋組的Polygons控制點。
本函數(shù)各輸入輸出參數(shù)的含義是:
(1)Coord_y_1:墻體一側(cè)邊界的y坐標值。
(2)Coord_y_2:墻體另一側(cè)邊界的y坐標值。
其中,y指向框構(gòu)順橋向,原點位于頂板頂中心位置。
(3)Stagger_Num:此參數(shù)的3個可選數(shù)據(jù)是0、1、2,這3個可選數(shù)據(jù)的具體含義分別為:不相錯、相錯1個間距、相錯2個間距。
墻體拉筋的梅花形布置采用每3 組鋼筋作為1個循環(huán)周期的方式(見圖6),第2組鋼筋與第1組鋼筋相錯1個鋼筋間距,第3 組鋼筋與第1 組鋼筋相錯2個鋼筋間距,3 組鋼筋布置結(jié)束以后開始下一次循環(huán)。因此,Stagger_Num 輸入?yún)?shù)的這3個可選數(shù)據(jù)為墻體拉筋的梅花形布置創(chuàng)造了條件。
圖6 墻體拉筋布置示意圖
對于每個墻體,其拉筋模型區(qū)域以豎直方向中心線為界,分為上下2個部分。Vertical_Rebar_GeParam()函數(shù)需要輸出與這2個部分相對應(yīng)的Polygons 控制點數(shù)組[5]。
(4)Array_result_up:輸出參數(shù)。表示豎直方向中心線以上拉筋組的Polygons 控制點。該參數(shù)是1個大小為n×4 的數(shù)組,數(shù)據(jù)類型是Tekla.Structures.Geometry3d.Point。
n表示豎直方向中心線以上部分的拉筋鋼筋組數(shù)目,每個鋼筋組的4個Polygons 控制點由Array_result_up數(shù)組的第2維4個元素組成。
(5)Array_result_down:輸出參數(shù)。表示豎直方向中心線以下拉筋組的Polygons 控制點。該參數(shù)是1個大小為n×4 的數(shù)組,數(shù)據(jù)類型是Tekla.Structures.Geometry3d.Point。
n表示豎直方向中心線以上部分的拉筋鋼筋組數(shù)目,每個鋼筋組的4個Polygons 控制點,由Array_result_down數(shù)組的第2維4個元素組成。
與頂?shù)装謇铑愃?,Array_result_up,Array_result_down 兩個區(qū)域也存在重復(fù)建模的情況,函數(shù)內(nèi)部已經(jīng)對這種情況進行了處理[6],一側(cè)區(qū)域的重疊拉筋被刪除,從而避免了拉筋重疊。
拉筋建模過程需要根據(jù)其在框構(gòu)中的具體位置區(qū)別對待。對于頂?shù)装搴蛪w拉筋,分別調(diào)用Transverse_Rebar_GeParam()和Vertical_Rebar_GeParam()函數(shù),獲取所有拉筋鋼筋組的Polygons 控制點[7]。將這2個函數(shù)生成的控制點賦予鋼筋建?;A(chǔ)類CreateRebars_Base.cs的相應(yīng)方法,從而創(chuàng)建所有拉筋模型[8]。
三維建模程序讀入FUBS 輸出的文本文件,并個性化確定結(jié)構(gòu)尺寸后,打開用戶交互界面。該交互窗口允許用戶手動修改經(jīng)過FUBS 初次計算出的鋼筋配置結(jié)果,其中包含對鋼筋型號、直徑、間距等拉筋參數(shù)的設(shè)置(見圖7)。由該程序生成的框構(gòu)頂板與邊墻相交位置處的橫橋向鋼筋及拉筋模型見圖8。
圖7 配筋信息修改界面
圖8 框構(gòu)頂板與邊墻相交位置處的橫橋向鋼筋及拉筋模型
作為信息化的重要手段,BIM是實現(xiàn)建設(shè)工程項目全生命周期管理的核心技術(shù)[9-10],同時正引發(fā)建筑行業(yè)一次史無前例的徹底變革。BIM技術(shù)通過利用數(shù)字模型將貫穿于建筑全生命周期的各種建筑信息組織成一個整體,能顯著提高工程質(zhì)量和作業(yè)效率,為建筑業(yè)帶來巨大效益。在建筑業(yè)中,橋梁工程的信息化落后于傳統(tǒng)房屋建筑工程,因此更加需要大力發(fā)展橋梁信息模型,提高橋梁設(shè)計水平,開發(fā)針對各種類型橋梁工程結(jié)構(gòu)的BIM 設(shè)計工具[11]。上述基于Tekla 二次開發(fā)的框構(gòu)橋設(shè)計工具,可實現(xiàn)與框構(gòu)橋分析計算程序的無縫銜接,以及BIM 快速建模和出圖,闡述該程序在拉筋建模過程的總體研發(fā)思路,對逐步完善橋梁信息模型的發(fā)展具有指導性價值。