陳文鏹,陳俊濤,胡偉飛,張曉春
(1.武漢大學(xué)水利水電學(xué)院,湖北 武漢 430072;2.國網(wǎng)浙江省電力有限公司緊水灘水力發(fā)電廠,浙江 麗水 323000)
拱壩是一種高次超靜定空間殼體結(jié)構(gòu),體形優(yōu)美,是一種既經(jīng)濟又安全的優(yōu)越壩型,因此在國內(nèi)外被廣泛采用。但拱壩結(jié)構(gòu)復(fù)雜,壩型種類多,傳統(tǒng)的二維設(shè)計方法存在設(shè)計意圖表達不直觀、設(shè)計變更繁復(fù)、計算工作量大、易出錯等問題[1]。參數(shù)化建模能提高正向設(shè)計效率,設(shè)計成果可視化程度高,當(dāng)設(shè)計方案變更時,通過修改參數(shù)能十分方便地完成設(shè)計變更,減少重復(fù)工作。因此,研究拱壩參數(shù)化建模方法具有重要意義。
近年來,BIM(Building Information Modeling,簡稱“BIM”)技術(shù)在水利水電行業(yè)發(fā)展迅速,基于BIM技術(shù)進行工程的正向設(shè)計,通過二次開發(fā)拓展BIM軟件功能,已經(jīng)成為行業(yè)發(fā)展的趨勢[2-3]。Revit作為主流BIM設(shè)計軟件之一,具有較強的建筑建模功能、參數(shù)化設(shè)計能力以及完善的二次開發(fā)接口,因此在建筑業(yè)被廣泛應(yīng)用,但針對水利水電行業(yè)的需求與特點,基于Revit二次開發(fā)的軟件相對較少。如朱致遠[4]等通過Revit二次開發(fā)設(shè)計出一款水閘擋土墻穩(wěn)定計算插件,實現(xiàn)計算結(jié)果的實時判別;伍丹琪[5]等基于Revit二次開發(fā)研究泵站廠房上部建筑的參數(shù)化建模程序,解決了泵站廠房BIM設(shè)計建模復(fù)雜的問題;鄧玉星[6]等基于Revit二次開發(fā)設(shè)計了一款金屬蝸殼自動建模插件,有效提高蝸殼的建模效率;而針對拱壩三維參數(shù)化建模的相關(guān)研究較少,樓濤[7]等提出一種基于CATIA二次開發(fā)的拱壩三維建模方法;杰德爾別克·馬迪尼葉提[8]等、王寧[9]等先后利用Dynamo可視化編程插件實現(xiàn)了雙曲拱壩的參數(shù)化建模。
Revit針對水工異形曲面構(gòu)件的建模能力有限。以拱壩為例,通過Revit UI界面的三維建模功能難以創(chuàng)建以曲線方程控制的拱壩三維模型,如拋物線拱壩。此外,雖然Revit具備繪制圓弧曲線的功能,但是圓弧拱壩種類眾多,當(dāng)拱圈形狀較為復(fù)雜時,圓弧拱壩建模過程繁瑣,無法實現(xiàn)自動化處理。
為此,本文選擇拱壩為研究對象,提取不同類型拱壩的拱圈體形參數(shù),針對Revit自身的局限性,基于Revit二次開發(fā)生成拱壩自動建模插件。通過該插件,可自動對輸入的拱圈體形參數(shù)進行插值計算,根據(jù)需要創(chuàng)建不同類型的拱壩三維模型,同時將插值后的體形參數(shù)輸出到Excel文件,極大提高拱壩的建模效率與精度。
參數(shù)化建模指通過研究并提取構(gòu)件組成元素的關(guān)鍵特征參數(shù),并通過控制這些參數(shù),經(jīng)過程序運算實現(xiàn)三維模型的自動創(chuàng)建[10]。在Revit中拱壩的參數(shù)化建模方法為:通過體形參數(shù)控制水平拱圈上、下游拱弧曲線,繪制拱壩各高程的水平拱圈,通過融合命令連接各層拱圈生成三維實體。研究不同類型拱壩的水平拱圈的構(gòu)成并提取其體形參數(shù),使用者只需輸入關(guān)鍵的控制參數(shù)即可快速創(chuàng)建拱壩三維模型。
水平拱圈的設(shè)計方式有兩種:一是將拱圈上、下游拱弧曲線設(shè)計為已知曲線;二是將拱圈的中軸線設(shè)計為已知曲線。為適應(yīng)不同的地形地質(zhì)條件,改善應(yīng)力狀態(tài)和穩(wěn)定條件,常見的拱壩拱形有圓弧拱、拋物線拱、橢圓拱、雙曲線拱和對數(shù)螺線拱等。下文以圓弧拱壩和拋物線拱壩為例說明兩種不同設(shè)計方式下的拱壩體形參數(shù)的選取方法。
拱壩的水平拱圈主要由上、下游拱弧曲線構(gòu)成,上、下游拱弧曲線的方程決定了拱圈的形狀。因此本文拱壩體形參數(shù)的選取原則為:提取上、下游拱弧曲線方程的控制參數(shù)作為拱壩的體形參數(shù)。當(dāng)拱圈的上、下游拱弧曲線設(shè)計為已知曲線時,可直接提取曲線方程的控制參數(shù)作為體形參數(shù);當(dāng)拱圈的中軸線設(shè)計為已知曲線時,需通過拱厚變化關(guān)系式推求上、下游拱弧曲線方程,進而提取體形參數(shù)。
1.1.1 圓弧拱壩體形參數(shù)選取
圓弧拱壩在我國已建拱壩中占據(jù)絕大多數(shù),圓弧拱壩的拱圈的幾何形狀較多,為了使拱壩參數(shù)化自動建模插件具有通用性,必須考慮各種幾何形狀的拱圈。非對稱多心圓弧雙曲拱壩在幾何特性上通過參數(shù)變化包含了單心、雙心和三心圓弧等多種等厚與變厚、對稱與非對稱的單曲和雙曲拱壩,最具代表性。故以非對稱六心圓弧變厚拱壩作為研究對象,其水平拱圈示意圖如圖1所示,中圓拱和左、右側(cè)圓拱的上、下游拱弧有各自的圓心和半徑,拱圈上、下游拱弧曲線設(shè)計為已知曲線,其水平拱圈形狀由曲線方程中的圓心坐標、半徑等參數(shù)控制,提取拱圈的控制參數(shù),見表1。隨著圓心坐標和半徑等參數(shù)的變化與調(diào)整,六心圓拱可以退化為單心圓拱、雙心圓拱和三心圓拱等。
表1 非對稱六心圓弧拱壩體形參數(shù)
圖1 非對稱六心圓弧拱壩水平拱圈示意圖
1.1.2 拋物線拱壩體形參數(shù)選取
當(dāng)水平拱圈的中軸線設(shè)計為已知曲線時,拋物線拱壩左、右兩半拱的軸線可由2條不同的拋物線分別表示。拋物線拱壩水平拱圈示意圖如圖2所示。
圖2 拋物線拱壩水平拱圈示意圖
決定拋物線拱壩水平拱圈形狀的設(shè)計參數(shù)包括拱冠厚度、拱端厚度、拱冠曲率半徑、拱端半中心角和拱冠截距,見表2。通過表2中的參數(shù)可確定拋物線拱壩的中軸線方程與拱厚計算公式,從而求出水平拱圈上、下游拱弧曲線參數(shù)方程,確定水平拱圈的輪廓。
表2 拋物線拱壩體形參數(shù)
拱壩是連續(xù)光滑的三維空間曲面,為使壩面光滑連續(xù),提高建模精度,需對拱壩體形參數(shù)進行插值計算。本文采用三次樣條插值函數(shù)描述體形參數(shù)與高程之間的函數(shù)關(guān)系。三次樣條曲線插值由分段三次曲線連接而成,在連接點處有二階連續(xù)導(dǎo)數(shù),具有較高的精度和良好的光滑性[11]。通過插值計算可以得到任意高程水平拱圈的體形參數(shù),進而確定任意高程水平拱圈的形狀。
本文對Revit進行二次開發(fā),實現(xiàn)拱壩參數(shù)化建模功能。選擇Visual Studio 2019作為開發(fā)平臺,在.NET Framework 4.7環(huán)境下使用C#語言進行程序編譯并生成動態(tài)鏈接庫(.dll)文件,依靠動態(tài)鏈接庫進行功能的調(diào)試,最后注冊外部應(yīng)用程序生成.addin文件完成插件創(chuàng)建。
基于Revit二次開發(fā)的圓弧拱壩參數(shù)化建模程序設(shè)計邏輯如圖3所示。程序業(yè)務(wù)邏輯分為4個模塊:數(shù)據(jù)讀取模塊、數(shù)據(jù)處理模塊、拱圈繪制模塊與建模功能模塊,分別說明如下。
圖3 圓弧拱壩參數(shù)化建模程序邏輯結(jié)構(gòu)
1)數(shù)據(jù)讀取模塊。將設(shè)計好的各高程水平拱圈體形參數(shù)導(dǎo)入Excel表格中,并通過插件的可視化操作界面讀取表格數(shù)據(jù)。
2)數(shù)據(jù)處理模塊。對讀取的體形參數(shù)進行插值計算,并將計算結(jié)果輸出到Excel文件中。圓弧類拱壩拱圈的幾何形狀形式較多,可通過減少參數(shù)的輸入實現(xiàn)六心拱的退化,比如單心圓弧雙曲拱壩不存在側(cè)圓拱,即左、右側(cè)圓拱的圓心坐標及相應(yīng)的半徑和中心角等數(shù)據(jù)不需要輸入。
不同的拱形,輸入的參數(shù)不同,通過輸入?yún)?shù)計算生成的點、線、面等幾何數(shù)據(jù)也有所不同。圓弧拱壩常見的拱形有單心拱、雙心拱和三心拱,我國早期修建的拱壩,絕大多數(shù)都是單心圓拱[12],可根據(jù)拱圈拱弧的組成,對其進行重分類。例如,單心拱只有中圓拱,雙心等厚拱只有側(cè)圓拱,雙心變厚拱只有中圓拱,三心等厚拱既有中圓拱又有側(cè)圓拱,如此等等?;谏鲜龇治觯诔绦蛑屑尤雽χ行慕堑呐袛?,以確定拱圈的幾何形狀,如圖4所示。
圖4 圓弧拱壩拱圈分類決策樹
3)拱圈繪制模塊。圓弧類拱壩的水平拱圈由圓弧與直線組成。Revit API向用戶提供創(chuàng)建圓弧的相關(guān)函數(shù),調(diào)用Arc.Create函數(shù)繪制各段圓弧曲線,調(diào)用Line.CreateBound函數(shù)繪制兩側(cè)拱端的直線,依次連接各段圓弧與直線生成拱圈輪廓。
4)建模功能模塊。調(diào)用通過Revit API提供的NewBlend函數(shù),依次將相鄰兩層的水平拱圈融合生成實體,從而生成圓弧拱壩整體三維模型。
拋物線拱壩與圓弧拱壩的設(shè)計流程大致相同,但需通過拱壩的中軸線方程及拱圈厚度公式計算拱圈上、下游拱弧的控制點坐標,通過連接控制點繪制水平拱圈。
緊水灘拱壩位于浙江省云和縣甌江大溪上游的龍泉溪上。攔河壩為混凝土三心變厚雙曲拱壩,最大壩高102 m,壩頂高程194 m。水平拱圈由左、中、右三段組成,即:既有中圓拱又有側(cè)圓拱。
圓弧拱壩參數(shù)化建模操作界面如圖5所示,拱壩體形參數(shù)數(shù)據(jù)參考《拱壩CADC的理論與實踐》一書[13]。生成的緊水灘拱壩三維模型效果圖如圖6所示。
圖5 圓弧拱壩參數(shù)化建模操作界面
圖6 緊水灘拱壩三維模型效果圖
小灣水電站位于云南省鳳慶縣和南澗彝族自治縣之間的瀾滄江與漾濞江匯合處下游1.5 km,攔河壩為混凝土拋物線雙曲拱壩,最大壩高292 m,壩頂高程1 245 m,拱壩體形參數(shù)數(shù)據(jù)參考《特高拱壩勘測設(shè)計研究:小灣實踐》一書[14]。拋物線拱壩參數(shù)化操作界面如圖7所示,生成的模型如圖8所示。
圖7 拋物線拱壩參數(shù)化建模操作界面
圖8 小灣拋物線拱壩三維模型效果圖
針對拱壩結(jié)構(gòu)復(fù)雜、體形參數(shù)眾多、三維建模過程繁瑣的特點,本文研究并提出了基于Revit 二次開發(fā)的拱壩參數(shù)化自動建模方法,以插件的形式對Revit進行功能拓展。主要取得了以下研究成果。
1)針對兩種不同的拱圈設(shè)計方式,提出選取拱圈上、下游拱弧曲線方程的控制參數(shù)作為體形參數(shù)的參數(shù)選取原則。
2)基于Revit二次開發(fā)技術(shù)設(shè)計了拱壩參數(shù)化自動建模插件,并在緊水灘拱壩和小灣拱壩兩個實例工程中應(yīng)用,成功實現(xiàn)拱壩參數(shù)化、自動化、精細化建模,提高設(shè)計和工程人員的工作效率,同時為其他水工異形曲面構(gòu)件的參數(shù)化建模提供思路和參考。