劉 秀,余文成,夏詩畫
(1.桂林理工大學(xué) 土木與建筑工程學(xué)院,廣西 桂林 541004;2.招商局重慶交通科研設(shè)計(jì)院有限公司,重慶 400067)
隨著交通建設(shè)領(lǐng)域BIM應(yīng)用的興起,參數(shù)化建模思想在橋梁工程中被廣泛應(yīng)用[1-7]。國內(nèi)相關(guān)學(xué)者對Dynamo在橋梁工程中的應(yīng)用做了相關(guān)研究。何樹凱[8]在重慶雙碑嘉陵江大橋工程中利用BIM技術(shù)對大橋施工設(shè)計(jì)進(jìn)行精細(xì)化處理,合理安排施工進(jìn)度,有效避免了人為因素造成的失誤,保證了工期進(jìn)度。董耀文等[9]結(jié)合參數(shù)化建模的實(shí)例,減少了BIM建模的工作量,降低了BIM建模的復(fù)雜程度,實(shí)現(xiàn)了信息的完整、精確和無縫的傳遞。邱珂[10]將BIM技術(shù)應(yīng)用到高跨立體有軌專用橋梁的設(shè)計(jì)中,對高跨立體有軌電車專用橋梁的設(shè)計(jì)有一定指導(dǎo)作用。吳樊等[11]利用Dynamo參數(shù)化的建模思想實(shí)現(xiàn)了鋼板樁和結(jié)構(gòu)鉆孔樁快速、高效放置,并提出基于Dynamo自行編寫Python節(jié)點(diǎn)擴(kuò)充到節(jié)點(diǎn)庫,有效提高了Dynamo建模效率。李庶安等[12]將Revit平臺的Dynamo插件應(yīng)用到橋梁緩和曲線段建模過程中,解決了緩和曲線段建模過程中以直代曲產(chǎn)生的誤差,提高了建模的精度,并就Dynamo的可視化編程語言的靈活性、代碼的開源性提出Dynamo發(fā)展的無限可能性[13-15]。
本文以重慶曾家?guī)r嘉陵江大橋工程為背景,針對工程中主橋橋墩為空間曲面結(jié)構(gòu),提出利用參數(shù)化建模思想完成模型創(chuàng)建的方法,以解決橋梁復(fù)雜異形構(gòu)件設(shè)計(jì)難、精度低的問題,同時(shí)利用參數(shù)動(dòng)態(tài)控制設(shè)計(jì)尺寸,快速完成設(shè)計(jì),實(shí)現(xiàn)實(shí)時(shí)修改造型的目的。
重慶曾家?guī)r嘉陵江大橋位于重慶市主城區(qū)中心地帶,橋型為鋼性懸索加勁連續(xù)鋼桁架梁橋,全長566.09 m,由跨江大橋及南橋頭明挖框架2部分組成,跨徑布置為(135+270+135)m=540 m。大橋?yàn)楣墐捎脴颍蠈訛殡p向6車道城市道路,下層為雙線軌道交通,曾家?guī)r大橋立面布置如圖1所示。
單位:cm
P1(北)、P2(南)是大橋的2個(gè)主橋墩,墩身均為變截面空心薄壁箱型結(jié)構(gòu)。橋墩墩身高41.0 m,順橋向墩身寬9.0 m,順橋向墩頂15.0 m高度范圍內(nèi)采用外弧造型修飾,圓弧半徑5.141 m;橋墩橫橋向外側(cè)為圓弧造型,墩頂寬34.8 m,墩底寬29.0 m,距墩底19.0 m高度處墩身寬27.4 m。橋墩內(nèi)部采用橢圓形挖空,橢圓長軸半徑為16.0 m,短軸半徑為7.0 m。
主墩墩身為帶圓端的矩形空心截面,圓端半徑為4.764 m,墩身順橋向及橫橋向壁厚均為1.0 m,墩底3.0 m高度范圍內(nèi)采用空心截面;沿墩身高設(shè)置2道橫隔板,橫隔板厚度為0.5 m,為方便施工,在橫隔板中心留有人孔。橋墩各截面構(gòu)造如圖2所示。
(a)順橋向
根據(jù)設(shè)計(jì)構(gòu)想,橋墩墩身各結(jié)構(gòu)面為空間曲面,墩身設(shè)計(jì)線條簡潔、流暢,空間定位精度要求很高,二維表達(dá)及施工難度大,一般BIM建模軟件很難精確設(shè)計(jì)墩身各曲面。針對曲面、復(fù)雜結(jié)構(gòu)在設(shè)計(jì)和表達(dá)上的工程設(shè)計(jì)難點(diǎn),借助Dynamo軟件通過參數(shù)化的建模思想對曾家?guī)r主橋橋墩進(jìn)行模型的搭建,通過參數(shù)調(diào)整結(jié)構(gòu)外型達(dá)到最佳狀態(tài)。完成模型的搭建后,再按照幾何控制系統(tǒng)確定的定位原則整合至Revit平臺,既降低了Revit建模的復(fù)雜度,又提高了模型的精確度和質(zhì)量。
Dynamo參數(shù)化建模的思路如下:
1)根據(jù)項(xiàng)目需要對異形結(jié)構(gòu)進(jìn)行拆分,通過邊界條件對邊緣進(jìn)行約束;
2)定位曲面空間關(guān)鍵點(diǎn)的坐標(biāo)、原點(diǎn)等;
3)對構(gòu)件的尺寸賦予參數(shù),通過節(jié)點(diǎn)將參數(shù)化的尺寸寫入Dynamo;
4)在Dynamo中利用參數(shù)確定點(diǎn),并生成對應(yīng)的曲線;
5)通過節(jié)點(diǎn)List、Poly Surface.By Loft Guides將生成的曲線創(chuàng)建出多段閉合的曲線,并由閉合的曲線創(chuàng)建曲面;
6)通過節(jié)點(diǎn)Solid.By Joined Surfaces將各個(gè)曲面形成的一組面的列表創(chuàng)建模型;
7)根據(jù)項(xiàng)目需要通過改變參數(shù)自動(dòng)調(diào)整模型;
8)輸出到專業(yè)軟件進(jìn)行后續(xù)工作。
在Dynamo構(gòu)建橋墩模型前,要先在Revit中新建相應(yīng)的族文件。在本項(xiàng)目中可選擇的族有公制常規(guī)模型,也可選擇公制結(jié)構(gòu)柱,這2種族類型都適合墩柱結(jié)構(gòu)。由于公制常規(guī)模型可智能適應(yīng)截面變化,這可為后期空間曲面進(jìn)行網(wǎng)格劃分做準(zhǔn)備,因此在族類型的選擇上優(yōu)先選擇公制常規(guī)模型。
2.2.1 節(jié)點(diǎn)數(shù)據(jù)處理
將圓端半徑、墩底寬、順橋向墩身寬、距墩底高度處墩身寬、橋墩墩身高、墩頂寬等基礎(chǔ)控制數(shù)據(jù)作為輸入端Number,控制墩身尺寸參數(shù)并賦予初始尺寸參數(shù)值,對尺寸進(jìn)行參數(shù)化賦值。主橋的2個(gè)橋墩P1、P2完全相同,且每一個(gè)橋墩都是對稱結(jié)構(gòu),設(shè)定坐標(biāo)原點(diǎn),根據(jù)幾何關(guān)系分別給各點(diǎn)賦予參數(shù)化的邏輯關(guān)系,并將這些數(shù)據(jù)關(guān)系在Code Block中表示出來,如圖3所示。
圖3 節(jié)點(diǎn)數(shù)據(jù)處理及參數(shù)賦值
2.2.2 建模過程
由前文可知,橋墩墩身是空間異形曲面的實(shí)體,而實(shí)體的生成由點(diǎn)到線再到面,最后成體?;诔审w思想,對組成橋墩的各個(gè)曲面分別由點(diǎn)到線最后生成墩身曲面。在創(chuàng)建曲面前,先定義曲面上的關(guān)鍵點(diǎn),墩底底面有A~F 六個(gè)關(guān)鍵點(diǎn),墩頂頂面有10個(gè)關(guān)鍵點(diǎn),側(cè)曲面上有6個(gè)關(guān)鍵點(diǎn),并將墩底底面設(shè)定坐標(biāo)原點(diǎn)A,向上為Z軸,根據(jù)右手螺旋定則,中指指向?yàn)閅軸正方向。曲面上各點(diǎn)的定義如圖4所示。
1)第一曲面—墩底底面建模
建模前,定義基準(zhǔn)特征,如圖4所示。墩身底面是由2個(gè)半圓和一個(gè)長方形組成。通過節(jié)點(diǎn)Point.By Coordinates得到墩底底面A~F 六個(gè)關(guān)鍵點(diǎn),其中A、F、E三點(diǎn)和B、C、D三點(diǎn)通過節(jié)點(diǎn)Arc.By Three Points創(chuàng)建圓弧,A、B點(diǎn)和D、E點(diǎn)通過節(jié)點(diǎn)Line.By Start Point End Point得到2條直線,共4條曲線,如圖5(a)所示。對生成的4條曲線利用節(jié)點(diǎn)List Create創(chuàng)建包含4條曲線的一組列表,再通過Poly Curve.By Joined Curves將4條曲線生成一個(gè)閉合的多線段,最后將閉合的多段線通過節(jié)點(diǎn)Surface.By Patch生成曲面,即墩底底面,如圖5(b)所示。
(a)墩底底面
(a)曲線創(chuàng)建過程
2)第二曲面—墩頂頂面建模
第二曲面的創(chuàng)建是以第一曲面為基礎(chǔ)。第一個(gè)曲面的6個(gè)關(guān)鍵點(diǎn)通過節(jié)點(diǎn)Geometry.Translate沿著Z軸進(jìn)行平移,平移距離為墩身的高度,得到墩頂對應(yīng)的6個(gè)關(guān)鍵點(diǎn)A′~F′;利用節(jié)點(diǎn)Curve.Point At Parameter分別獲取線段A′B′和D′E′的中點(diǎn)G和H,再通過節(jié)點(diǎn)Geometry.Translate分別向Y軸的負(fù)、正方向平移200個(gè)單位,得到點(diǎn)G′和點(diǎn)H′。由此共得到8個(gè)墩頂關(guān)鍵點(diǎn)A′~H′。與第一曲面不同的是8個(gè)關(guān)鍵點(diǎn)所生成的曲線都是弧線,只需要利用節(jié)點(diǎn)Arc.By Three Points生成弧線即可。最后依次通過節(jié)點(diǎn)List Create、Poly Curve.By Joined Curves和Surface.By Patch生成第二曲面,即墩頂頂面,如圖6所示。
圖6 第二曲面—墩頂頂面的生成
同理,余下幾個(gè)面都是以橋墩墩身上下2個(gè)面為基礎(chǔ),通過已確定的點(diǎn)、曲線等關(guān)系,利用相應(yīng)的節(jié)點(diǎn)創(chuàng)建組列表并生成對應(yīng)的曲面,進(jìn)而完成對整個(gè)墩身各個(gè)曲面的創(chuàng)建,如圖7所示。
圖7 橋墩墩身立面
2.2.3 建模中的腳本編寫
Dynamo可視化編程軟件參數(shù)化建模也可通過Design Script腳本進(jìn)行模型創(chuàng)建。Design Script是一個(gè)簡潔可讀的語言,而Code Block是Design Script在Dynamo中的運(yùn)行窗口,可動(dòng)態(tài)鏈接到一個(gè)可視化編程環(huán)境與基于文本的環(huán)境。在Code Block可直接編寫Design Script代碼,通過編寫Design Script腳本可實(shí)現(xiàn)節(jié)點(diǎn)與文本之間的相互轉(zhuǎn)換,進(jìn)而驗(yàn)證通過節(jié)點(diǎn)創(chuàng)建模型結(jié)果的可行性。下面是利用腳本具體創(chuàng)建模型的過程,其編寫腳本的建模流程如下。
1)參數(shù)化賦值
根據(jù)橋墩墩身的結(jié)構(gòu)設(shè)計(jì)特點(diǎn),由幾何關(guān)系對墩身尺寸賦予參數(shù),對節(jié)點(diǎn)數(shù)據(jù)進(jìn)行處理并賦予參數(shù)化的值,將其寫入Code Block中,如圖3所示,其參數(shù)化的幾何尺寸數(shù)據(jù)如下:
l1_1;
l1_2=l1_1-640;
l1_3;
h2;
l2_1;
l2_2=l2_1-640;
l2_3=l1_3;
h3;
l3_1;
l3_2=l3_1-640;
l3_3=l1_3;
l3_4=l3_3+400;
h4=h3-500。
2)編寫代碼創(chuàng)建模型
第一曲面—墩底底面通過編寫腳本創(chuàng)建的過程如下,新創(chuàng)建一個(gè)Code Block節(jié)點(diǎn)用于編寫代碼創(chuàng)建模型,其流程如圖5所示。
p1_1=Point.ByCoordinates(-l1_2/2,-l1_3/2,0);
p1_2=Point.ByCoordinates(l1_2/2,-l1_3/2,0);
p1_3=Point.ByCoordinates(l1_1/2,0,0);
p1_4=Point.ByCoordinates(l1_2/2,l1_3/2,0);
p1_5=Point.ByCoordinates(-l1_2/2,l1_3/2,0);
p1_6=Point.ByCoordinates(-l1_1/2,0,0);
c1_1=Line.ByStartPointEndPoint(p1_1,p1_2);
c1_2=Arc.ByThreePoints(p1_2,p1_3,p1_4);
c1_3=Line.ByStartPointEndPoint(p1_4,p1_5);
c1_4=Arc.ByThreePoints(p1_5,p1_6,p1_1);
list1_1=[c1_1,c1_2,c1_3,c1_4];
polycurve1_1=PolyCurve.ByJoinedCurves(list1_1);
surf1_1=Surface.ByPatch(polycurve1_1)。
腳本中P1_1~P1_6表示墩底底面的6個(gè)關(guān)鍵點(diǎn)A~F,C1_1和C1_3表示直線AB和DE,C1_2和C1_4表示弧線AFE和BCD。通過List將2條直線和2條曲線創(chuàng)建一組列表,即list1_1=[c1_1,c1_2,c1_3,c1_4];利用Poly Curve創(chuàng)建多段閉合曲線,即poly curve1_1=Poly Curve.By Joined Curves(list1_1);最后通過surf1_1=Surface.By Patch(poly curve1_1)創(chuàng)建墩底底面,并利用Watch3D進(jìn)行查看驗(yàn)證,如圖8(a)所示。
其余曲面的形成均可用Design Script腳本表示出來,原理同可視化編程節(jié)點(diǎn),最后將所有的Surfaces進(jìn)行整合,即[surf1_1,surf3_1,surfv_1_1,surfv_1_2,surfv_2_1,surfv_2_2,surfv_3_1,surfv_3_2,surfv_4_1,surfv_4_2],初步得到橋墩模型,如圖6、圖7所示,并用Watch3D查看,如圖8(b)所示。
(a)墩底底面
由于橋墩內(nèi)部采用橢圓形挖空,在Dynamo中對其進(jìn)行參數(shù)化賦值,通過節(jié)點(diǎn)Ellipse.By Origin Vectors創(chuàng)建橢圓,節(jié)點(diǎn)Surface.By Patch形成閉合曲線,并通過節(jié)點(diǎn)Surface.Thicken對橢圓進(jìn)行加厚得到橢圓實(shí)體。最后將橢圓實(shí)體與初步得到的墩身模型通過節(jié)點(diǎn)Solid.Difference進(jìn)行剪切,將兩實(shí)體切割分開,通過Export To SAT導(dǎo)出所需的實(shí)體模型到文件路徑中。對于創(chuàng)建完成的橋墩墩身模型,可通過Revit查看模型的三維視圖和各個(gè)立面圖等是否滿足設(shè)計(jì)要求,若不滿足要求可通過調(diào)整相應(yīng)參數(shù)修改模型,參數(shù)調(diào)整輸入與模型聯(lián)動(dòng),通過設(shè)置滑條或其他類型輸入窗口進(jìn)行大范圍參數(shù)輸入,所變即所見,大大提升工作效率。
對于異形構(gòu)件橋墩,基于Dynamo平臺采用參數(shù)化的建模思想完成了模型的創(chuàng)建。
1)基于Dynamo參數(shù)化建模,設(shè)置構(gòu)件參數(shù),通過連接相應(yīng)的節(jié)點(diǎn)完成模型的創(chuàng)建,并通過修改構(gòu)件參數(shù)修改模型,完成設(shè)計(jì)要求。建模過程直觀、易懂且邏輯性強(qiáng),適用于編程基礎(chǔ)較弱的工程設(shè)計(jì)人員。
2)基于Dynamo可視化編程節(jié)點(diǎn),對構(gòu)件尺寸進(jìn)行數(shù)據(jù)處理,通過對節(jié)點(diǎn)進(jìn)行腳本的編寫完成對模型的創(chuàng)建,體現(xiàn)出Dynamo通過編寫程序創(chuàng)建模型的優(yōu)點(diǎn)。
3)基于Dynamo平臺創(chuàng)建結(jié)構(gòu)模型,最終以.dyn 文件格式保存,后期對模型的修改,只需要打開相應(yīng)的.dyn文件,修改對應(yīng)參數(shù),或在結(jié)構(gòu)視圖中設(shè)置參數(shù)輸入方式進(jìn)行聯(lián)動(dòng)微調(diào),Dynamo可快速更新修改設(shè)計(jì),并驅(qū)動(dòng)Revit生成新的模型,無需重復(fù)建?;?qū)δP瓦M(jìn)行較大的改動(dòng),即可達(dá)到對模型修改的設(shè)計(jì)效果,對模型在設(shè)計(jì)方案階段不斷調(diào)整更新非常適用。
本文以曾家?guī)r嘉陵江大橋工程為依托,基于橋梁工程中異形構(gòu)件建模難的問題,提出了參數(shù)化的建模思想,實(shí)現(xiàn)了異形構(gòu)件模型的創(chuàng)建,提高了模型的精度和深度,為設(shè)計(jì)階段利用BIM技術(shù)深化施工圖設(shè)計(jì)奠定基礎(chǔ),主要認(rèn)識如下:
1)以橋墩墩身設(shè)計(jì)尺寸為基礎(chǔ),根據(jù)幾何關(guān)聯(lián)關(guān)系分別對各點(diǎn)具體賦予參數(shù)信息,并通過Code lock將這些參數(shù)作為輸入端控制各個(gè)曲面的形成,最終根據(jù)項(xiàng)目需求通過修改輸入端的相關(guān)參數(shù)調(diào)整模型,直到符合工程設(shè)計(jì)要求即可,不需重復(fù)建模,可通過少量的工作量制作出復(fù)雜空間曲面模型,極大豐富了造型設(shè)計(jì)能力,設(shè)計(jì)控制精度得到較大提升,節(jié)省了人力和時(shí)間,提升了工作效率。
2)基于Dynamo參數(shù)化創(chuàng)建橋墩三維模型可滿足初步設(shè)計(jì)的要求,但對后期施工設(shè)計(jì)階段的精細(xì)化設(shè)計(jì)仍存在較大的差距,如橋墩鋼筋精細(xì)化設(shè)計(jì),需要根據(jù)專業(yè)需求進(jìn)一步進(jìn)行歸納和總結(jié),找出其中的參數(shù)關(guān)聯(lián)關(guān)系,通過不停的探索和實(shí)踐,最終實(shí)現(xiàn)異形構(gòu)件參數(shù)化高精度設(shè)計(jì)。