黃琦茗, 仇文革, 萬世付, 趙海霖, 段東亞
(西南交通大學(xué) 交通隧道工程教育部重點實驗室, 四川 成都 610031)
隨著我國社會經(jīng)濟(jì)穩(wěn)步推進(jìn),在隧道工程建設(shè)中,低碳、環(huán)保和可持續(xù)的要求逐漸被人們所重視。與此同時,建筑信息模型(building information modeling,簡稱BIM)在建筑行業(yè)的運用已日趨成熟。自上而下的正向設(shè)計能夠給予設(shè)計階段更加靈活的方案設(shè)計。參數(shù)化建模能夠最大化正向設(shè)計的設(shè)計效率,而目前國內(nèi)外的隧道參數(shù)化建模軟件發(fā)展較為緩慢,研究隧道結(jié)構(gòu)參數(shù)化建模規(guī)則對隧道參數(shù)化建模軟件的誕生具有促進(jìn)作用。
隨著我國高速鐵路的發(fā)展,為了削減高速列車進(jìn)出隧道產(chǎn)生的微氣壓波[1]的影響,在設(shè)計高速鐵路隧道時,常采用帽檐斜切式洞門[2]。帽檐斜切式洞門是帶有不規(guī)則直紋曲面的非常規(guī)實體,無法通過常規(guī)實體創(chuàng)建方法與布爾運算直接生成,僅能通過曲線生成曲面,曲面縫合成實體的方法進(jìn)行創(chuàng)建,創(chuàng)建過程復(fù)雜[3]。在使用這種思路創(chuàng)建此類型的實體時,對其參數(shù)化建模能夠讓設(shè)計人員僅通過修改參數(shù)并預(yù)覽就能夠找到最合適的曲面形狀,能夠顯著提高設(shè)計和創(chuàng)建效率,這也契合BIM正向設(shè)計的理念。所謂參數(shù)化建模,就是研究并提取構(gòu)件組成元素的關(guān)鍵特征參數(shù),通過控制這些參數(shù),經(jīng)過程序運算自動創(chuàng)建三維模型與精確定位[4]。經(jīng)分析,帽檐斜切式洞門的結(jié)構(gòu)外形具有極強的相似性,曲面和曲線的構(gòu)成具有一定的規(guī)律性,為了累計設(shè)計成果,并提高再次建模的效率,創(chuàng)建參數(shù)化模型具有現(xiàn)實意義。
本文基于MicroStation軟件平臺進(jìn)行二次開發(fā),開發(fā)快速創(chuàng)建帽檐斜切式洞門的參數(shù)化模型的算法。已有學(xué)者使用Revit進(jìn)行二次開發(fā)隧道工程參數(shù)化建模,劉兆新等[5]利用Revit進(jìn)行二次開發(fā),實現(xiàn)了錨桿、小導(dǎo)管等初期支護(hù)構(gòu)件的參數(shù)化創(chuàng)建與空間自動定位; 王曉東等[6]基于Revit開發(fā),實現(xiàn)了盾構(gòu)管片參數(shù)化建模以及定位。以上學(xué)者的開發(fā)思路對于開發(fā)隧道工程參數(shù)化建模具有參考價值,但是仍然受制于Revit軟件的族設(shè)計。秦海洋[7]基于 Sketch Tracer對帽檐斜切式洞門進(jìn)行了建模,其研究僅僅為翻模,并未完成參數(shù)化建模與正向設(shè)計; 文獻(xiàn)[8-10]通過分析隧道洞口設(shè)計人員的設(shè)計習(xí)慣和思維方式,開發(fā)了隧道洞口參數(shù)化設(shè)計程序,完成了端墻式洞門參數(shù)化建模,但端墻式洞門相對較為規(guī)則,參數(shù)化建模難度較低,對于較為復(fù)雜的模型仍需進(jìn)一步研究。
本文對帽檐斜切式洞門的結(jié)構(gòu)特點進(jìn)行了研究,利用MicroStation平臺進(jìn)行二次開發(fā),從源代碼設(shè)計算法實現(xiàn)帽檐斜切式洞門的參數(shù)化創(chuàng)建、動態(tài)預(yù)覽與放置以及提取統(tǒng)計工程量。結(jié)合某工程實例,使用該參數(shù)化模型程序進(jìn)行快速設(shè)計和建模驗證程序的可行性。以期研究成果為開發(fā)類似隧道工程參數(shù)化模型程序研究提供一種新思路。
MicroStation是Bentley公司自主開發(fā)的計算機輔助設(shè)計平臺,Bentley公司的很多軟件都是基于MicroStation平臺進(jìn)行二次開發(fā)得到的,如OpenBridge Modeler、OpenRoads Designer、AECOsim Building Designer等服務(wù)于土木工程各行各業(yè)(包括橋梁、道路、建筑工程)的軟件。MicroStation具有很強的可開發(fā)性?;贛icroStation二次開發(fā)服務(wù)于隧道行業(yè)的功能,能夠充分展現(xiàn)隧道工程的特征,具有較高的效率。
MicroStation二次開發(fā)主要包括3種方式:MicroStation VBA(簡稱MVBA)、Addin(基于C#語言或其他的.NET開發(fā)語言)和MDL(基于C/C++)。這3種開發(fā)手段由易到難,功能類型與復(fù)雜程度則是由弱到強。
經(jīng)過比較和研究發(fā)現(xiàn),MVBA具有很多強大的功能,能夠滿足編程創(chuàng)建參數(shù)化模型,不必追求復(fù)雜度更高的MDL。許多接口和函數(shù)都已經(jīng)在軟件上進(jìn)行了很好的集成和封裝。采用的是最易學(xué)、最普及的BASIC編程語言。因此,對于非計算機專業(yè)的土木開發(fā)者具有較友好的開發(fā)環(huán)境,較容易上手進(jìn)行編程,更適合隧道構(gòu)件參數(shù)化理論規(guī)則研究以及二次開發(fā)。
MVBA編程環(huán)境由3個模塊組成,分別是窗體模塊、代碼模塊和類模塊。窗體模塊主要功能是可視化定義和編輯交互式用戶界面,調(diào)用相關(guān)控件,并對控件參數(shù)進(jìn)行定義,且可定義窗口初觸發(fā)相關(guān)事件; 代碼模塊是一個開發(fā)工程中最基本的模塊,它是工程初始化、程序的起點,在該模塊定義主函數(shù); 類模塊是用來創(chuàng)建對象的,其中的每個小模塊都是一個對象名,同時,在其中能夠定義程序的命令動作,通過調(diào)用接口創(chuàng)建各種用戶需要實現(xiàn)的事件,實現(xiàn)代碼與軟件互動。
帽檐斜切式洞門輪廓曲線示意圖如圖1所示。
圖1 帽檐斜切式洞門輪廓曲線示意圖
帽檐斜切式洞門的設(shè)置需要根據(jù)洞口地形、地質(zhì)條件、隧道長度和所處位置進(jìn)行創(chuàng)建。主體部分主要由帽檐和斜切明洞段構(gòu)成,在三維建模過程中,難點在于帽檐處的建模,由于不是常規(guī)形狀實體,無法通過布爾運算創(chuàng)建。由于體由面組成,面由線組成,因此帽檐部分可以轉(zhuǎn)化為由圖 1中4根輪廓線約束構(gòu)成,實體的參數(shù)化即轉(zhuǎn)化成這4根輪廓線的參數(shù)化。對于4根輪廓線的參數(shù),通常這種洞門的輪廓線1為橢圓線[11]; 輪廓線2一般有純橢圓線和半橢圓線加直線2種類型可以選擇; 輪廓線3和輪廓線4實質(zhì)為斜切明洞段斜切面上的曲線,通過提取斜切明洞的斜切面的線可以完成創(chuàng)建,這種方法既方便創(chuàng)建,又能約束帽檐與切割明洞在切割面上共面。
參數(shù)化創(chuàng)建該帽檐斜切式洞門模型主要分為參數(shù)化定義與用戶界面創(chuàng)建、參數(shù)計算處理并創(chuàng)建各對象元素、模型空間調(diào)用與放置,具體流程見圖2。
圖2 參數(shù)化模型創(chuàng)建流程
參數(shù)示意圖見圖3。
圖3 參數(shù)示意圖
1)內(nèi)輪廓參數(shù)設(shè)計。隧道設(shè)計初始階段均需要進(jìn)行隧道內(nèi)輪廓設(shè)計,本程序能夠提供參數(shù)化內(nèi)輪廓設(shè)計。隧道內(nèi)輪廓設(shè)計通過內(nèi)輪廓參數(shù)進(jìn)行,首先根據(jù)所需的內(nèi)輪廓建筑界限大小選擇合適的內(nèi)輪廓類型,根據(jù)參考值調(diào)整至合適的內(nèi)輪廓,完成內(nèi)輪廓設(shè)計。
2)明洞斷面與斜切斷面參數(shù)設(shè)計。該洞門參數(shù)化程序?qū)詣幼x取事先完成設(shè)計的內(nèi)輪廓參數(shù),再輸入如圖3所示的襯砌厚度of、斜切角度以及位置f參數(shù)即可完成斜切明洞段建模。
3)輪廓線參數(shù)設(shè)計。輪廓線3和輪廓線4為斜切明洞段的線,因此,它們無需另外定義參數(shù),通過定義斜切明洞段的參數(shù)創(chuàng)建斜切明洞段即可提取2根輪廓線。控制輪廓線1的參數(shù)有橢圓長軸b、短軸a、傾斜角度,僅這3個參數(shù)無法確定中心點位置,但研究發(fā)現(xiàn),為了保持隧道內(nèi)通暢,輪廓線1不能穿出內(nèi)輪廓線,因此輪廓線1的底部頂點需要與輪廓線4的底部頂點在Y方向上集聚,由此約束了輪廓線1的位置,無需再定義額外參數(shù)就能夠確定其中心點位置。與輪廓線1不同,輪廓線2的參數(shù)有橢圓長軸b、短軸a、傾斜角度及輪廓線總高度H,能夠直接計算出橢圓位置和橢圓方向。
為進(jìn)一步精簡參數(shù),提高設(shè)計效率,在完成斜切明洞段建模時,程序會根據(jù)上述斜切明洞段參數(shù)(包括內(nèi)輪廓參數(shù)、斜切角度與位置f等參數(shù)),按照一定的規(guī)則自動處理輪廓線1和輪廓線2的參數(shù)以提供一個程序預(yù)設(shè)的參考模型,并在窗口上生成這些參考值參數(shù),用戶在生成的參考模型的參數(shù)基礎(chǔ)上對參數(shù)進(jìn)行微調(diào),直至完成滿足需求的帽檐斜切式洞門模型。
圖4所示為用戶交互窗體,左側(cè)為參數(shù)輸入塊,右側(cè)為圖片瀏覽塊。在圖片瀏覽塊中除了能夠給予參數(shù)提示圖外,還可以實時預(yù)覽輸入?yún)?shù)后的模型,提高用戶選擇輸入?yún)?shù)的有效性和效率。
圖4 用戶交互窗體
1)MVBA編程是純面向?qū)ο蟮?,其中的類模塊是面向?qū)ο缶幊痰幕A(chǔ)。對于用戶而言,可視化程度越高,用戶體驗越好,因此,動態(tài)展示和動態(tài)放置能夠幫助用戶對創(chuàng)建的實體有非常清晰的理解。在類模塊中,MVBA提供了IprimitiveCommandEvents接口用于定義對象元素的放置規(guī)則??梢酝ㄟ^接口中的各種事件實現(xiàn)各種所需要的功能,如需動態(tài)顯示和放置,需要在接口中定義Dynamics事件,實現(xiàn)鼠標(biāo)控制放置點和放置方向。將模型顯示為DrawMode,當(dāng)DrawMode為msdDrawingModeNormal時,將元素對象添加至激活模型空間中。
2)輪廓線1和輪廓2的創(chuàng)建。由前所述,由于曲線1和曲線2主要由橢圓弧組成,因此需要創(chuàng)建Ellipse3D對象,Ellipse3D對象由5個成員參數(shù)構(gòu)成。創(chuàng)建Ellipse3D對象通過定義Center進(jìn)行定位; 定義Vector0和Vector90確定橢圓方向,其分別代表0°角開始點和90°角開始點; 定義Start和Sweep確定橢圓弧開始角度和掃掠角度。將窗體模塊定義的參數(shù)進(jìn)行數(shù)學(xué)處理并傳遞至上述5個成員參數(shù)中,即完成橢圓曲線對象的創(chuàng)建。由于Ellipse3D僅為一個對象,如需添加至模型空間中需要將其轉(zhuǎn)化為BsplineCurveElement才能添加至模型空間中。
3)斜切明洞段的建立。由于輪廓線3和輪廓線4是洞門的斜切明洞段上的曲線,因此先創(chuàng)建斜切明洞段模型。對于斜切明洞段的創(chuàng)建,在程序中先創(chuàng)建了參數(shù)化的斷面,參數(shù)選擇見圖 3。將創(chuàng)建的斷面元素使用SweepProfileAlongPath進(jìn)行創(chuàng)建,再通過SmartSolid.SolidSubtract的方法切割出切割面,完成斜切明洞段參數(shù)化模型的創(chuàng)建。
4)輪廓線3和輪廓線4的提取。對于MVBA中并無直接提取實體邊界的API,可以通過先提取面,再提取面的邊界的方式提取曲線。調(diào)用ExtractSurfaceFromSolid提取出明洞切割段的切面。提取面后通過BuildArrayFromContents將曲面上的所有邊界存儲進(jìn)一個元素枚舉器(ElementEnumerator)中,找到自己想要的曲線再轉(zhuǎn)化為BsplineCurveElement元素即可。
5)曲面的創(chuàng)建與實體生成。MVBA可以提供多種創(chuàng)建BsplineSurface的方法,本例中調(diào)用FromTwoBoundaryCurves創(chuàng)建4個直紋曲面,再創(chuàng)建2個底平面。在MVBA中,并無直接縫合曲面生成實體的API,但MVBA最強大的地方在于它可以直接通過命令調(diào)用軟件已經(jīng)封裝好的功能命令,這里編寫CadInputQueue.SendCommand "CONSTRUCT STITCH"代碼以啟動軟件中已有的縫合曲面命令,對所有曲面進(jìn)行縫合生成實體,再通過GetLastValidGraphicalElement將其添加進(jìn)程序中成為智能實體元素。在MVBA中也可以通過聲明調(diào)用軟件的MDL程序中的API,由于本文主要介紹MVBA,此處不再贅述。
6)洞門工程數(shù)量統(tǒng)計提取。三維模型對于工程最直接的作用是方便計算和提取工程數(shù)量統(tǒng)計。MVBA是純面向?qū)ο蟮?,因此如需查看體積,能夠通過調(diào)用SmartSolidElement.ComputeVolume方法提取其體積,在程序中進(jìn)行運算。其他信息同樣可以在程序中查看、提取以及運算。借助于COM編程,MVBA能夠操作Excel文件,將所需技術(shù)工程數(shù)量信息數(shù)據(jù)寫入Excel中并導(dǎo)出。
某隧道為雙線電氣化鐵路隧道,設(shè)計速度為120 km/h,隧道軸線里程為DK206+365~DK209+710,隧道全長3 345 m,隧道最大埋深為81 m。隧道全段位于直線上,隧道縱坡為人字坡,設(shè)計最大坡度為3‰,其出口洞門采用的是帽檐斜切式洞門。
在用戶窗口左側(cè)的參數(shù)輸入塊根據(jù)右側(cè)圖片瀏覽塊中的Parameter Informs頁面中相關(guān)參數(shù)圖的提示輸入?yún)?shù),輸入完畢后,即可在PreviewBody頁面預(yù)覽實體線框模型查看參數(shù)設(shè)置是否合適,點擊放置按鈕即可動態(tài)放置帽檐斜切式洞門實體模型,程序運行僅需2 s即完成創(chuàng)建。參數(shù)化模型放置效果如圖5所示。工程數(shù)量統(tǒng)計自動提取至Excel表格如圖6所示。
圖5 參數(shù)化模型放置效果
圖6 工程數(shù)量統(tǒng)計自動提取至Excel表格
本文對帽檐斜切式洞門模型的創(chuàng)建從設(shè)計思想到程序?qū)崿F(xiàn)均進(jìn)行了探索和驗證。得出以下結(jié)論:
1)本文對于此類洞門的設(shè)計思想探討具有一定的普適性,可為未來服務(wù)于隧道工程設(shè)計的參數(shù)化設(shè)計軟件的洞門模型創(chuàng)建提供參考。
2)應(yīng)用MicroStation平臺的VBA編程進(jìn)行二次開發(fā),探索創(chuàng)建非常規(guī)形狀實體的算法,創(chuàng)建完成帽檐斜切式洞門的參數(shù)化模型與自動統(tǒng)計工程量程序,驗證了MVBA在創(chuàng)建參數(shù)化模型的可行性。
3)探索并驗證了MicroStation平臺VBA編程的可開發(fā)性,通過研究該非常規(guī)實體的參數(shù)化模型的創(chuàng)建,以期將參數(shù)化實體的創(chuàng)建推廣至更多類型實體。對于常規(guī)實體的參數(shù)化創(chuàng)建,MVBA可提供相當(dāng)豐富的創(chuàng)建方法。
4)該程序可在未來不同項目中重復(fù)利用。在正向設(shè)計中提供實時預(yù)覽功能,參數(shù)的選取更加方便準(zhǔn)確,提高帽檐斜切式洞門模型的設(shè)計建模效率,具有一定的使用價值。
積累創(chuàng)建參數(shù)化模型是一個過程,對于隧道工程中的每個基礎(chǔ)構(gòu)件的參數(shù)化模型的研究仍需大量的實踐,并在不斷的學(xué)習(xí)中,推動更高效的隧道工程的參數(shù)化設(shè)計軟件的誕生,在隧道工程設(shè)計中實現(xiàn)真正的正向設(shè)計,提高設(shè)計效率,推動BIM技術(shù)在隧道工程的發(fā)展與運用,讓隧道工程設(shè)計走向現(xiàn)代化、高效化與數(shù)字化。