牛立軍,李藝豪
(華北水利水電大學水利學院,河南 鄭州 450000)
Autodesk Revit作為實現BIM技術的核心軟件[1]。因其可視化程度高、交互能力強等特點,被廣泛應用于水利工程的設計、施工等階段[2]。由于自身缺乏滲流計算模塊,導致無法滿足水閘正向設計的要求。傳統的滲流計算大多利用Excel表格、理正、AutoStable等軟件輔助計算,其可視化程度低,不能滿足模型參數與計算參數的相互聯動,計算結果不能即時反映到防滲措施(如鋪蓋)的設計中。通過Visual Studio平臺利用C#語言實現與Revit API接口的貫通,實現對Revit的二次開發,為上述現存問題提供了新的解決思路[3-5]。
國內基于Revit的二次開發多數應用于工民建專業,在水利工程中的應用有待深入研究[6-9]。王玄玄等[10]結合二次開發的相關技術實現了Revit與Abaqus模型轉換接口的貫通,提高了處理復雜結構建模和進行相關應力分析的效率。朱致遠等[11]利用二次開發技術實現了擋土墻的穩定計算,并應用實例取得了良好的效果,彌補了Revit平臺擋土墻穩定計算的缺失。姜楠等[12]基于BIM平臺利用VB技術進行二次開發,初步實現了三維模型與信息模型在施工階段的應用,彌補了BIM技術在施工階段應用的缺失。前人的研究為BIM技術在水利行業的深度應用提供了重要的參考價值,但BIM技術在水閘滲流計算中的應用仍是短板。
針對現有研究不足,本文利用C#語言將傳統的滲流算法(改進阻力系數法)通過Revit API接口與事先繪制好的水閘BIM模型掛接,實現了對水閘模型參數的獲取、修改以及可視化的滲流計算過程和結果到模型的實時反應。
主要介紹了滲流計算插件的具體開發思路和難點,以及通過C#語言進行的模型信息交互模塊和計算分析模塊的代碼編譯,實現了水閘滲流計算全過程可視化交互式操作。
水閘滲流計算插件的開發基于.NET框架,采用C#語言,平臺設計主要包含模型信息交互模塊和滲流計算分析模塊,開發思路見圖1。

圖1 二次開發技術路線
主要步驟如下:①搭建編程環境(在Visual Studio中添加Revit API接口引用);②核心模塊,通過新建類從IExternalApplication(外部應用)進行模型信息交互模塊和滲流計算分析模塊的代碼編寫,主要實現了針對模型的元素獲取、參數的讀寫、滲流計算分析功能;③功能測試,針對以上實現功能進行逐一測試,若測試成功則“是”,結束編程工作,若出現問題則“否”,重新進入核心模塊調試代碼直至成功。
實現可視化模型信息交互的主要步驟:①通過IExternalCommand(外部命令)接口實現,執行Transaction命令找到模型文件夾位置,利用GetElement和LookupParameter函數命令分別實現模型ID號和模型參數的獲取,實現模型與插件的綁定;②通過創建Form窗口,分別利用TabControl、GroupBox和TextBox等控件完成模型信息交互界面的設置,架構設計見圖2;③通過執行Execute命令利用TextBox控件將模型多個參數與插件實現雙向綁定,從而實現了TextBox控件中數值變模型即時改變,達到了人機交互的效果。

圖2 可視化模型信息窗體構架設計
1.3.1實現方法
計算分析模塊是滲流計算插件實現的核心功能,根據規范[13]可知水閘滲流計算的方法有流網法和改進阻力系數法。本文中所利用的計算方法是改進阻力系數法[14],該方法將水閘模型簡化分為進出口段、內部垂直段、內部水平段,見圖3,然后通過式(1)—(3)計算其各分段的阻力系數(ξi),通過各段的阻力系數確定各分段的水頭損失(hi)以及出口段的滲透坡降(J0)與規范對應的規定值進行對比判斷。利用C#語言將上述方法計算流程進行模塊封裝,完成阻力系數、滲透壓力、滲透坡降和結果分析等計算方法的代碼編譯。

圖3 分段基本形式
(1)
(2)
(3)
式中ξ0、ξy、ξx——進出口段、內部垂直段、內部水平段的阻力系數;S、S1、S2——進、出口段板樁或齒墻入土深度,m;T——地基的透水深度,m;Lx——水平段長度,m。
1.3.2實現功能
計算在不同水位參數、不同地基類別下的阻力系數、滲透壓力及滲透坡降對照規范允許值。在代碼編譯中利用C#語言的判斷語句設置對應參數的閾值,并將計算結果的TextBox控件與BackColor屬性進行綁定,當計算結果不滿足閾值要求,TextBox控件顏色將發生改變,效果見圖4,實現了在多種防滲設計方案下的結果快速計算和即時判別的功能[15]。

圖4 計算結果分析
本部分以某節制閘為例,將模板模型導入插件中分別進行2種設計方案下滲流計算:方案一,僅設置水平防滲設;方案二,水平防滲設施與垂直防滲設施相結合。并將同樣的數據導入AutoBank軟件驗證插件的可靠性。
通過AutoRevit軟件建立水閘工程參數化三維模型步驟如下:①首先通過新建公制常規模型創建水閘工程的各個參數化族文件;②通過新建項目文件,將參數化族進行組裝,形成三維水閘模型;③對組裝好的水閘模型設置其全局參數。成果見圖5。

圖5 參數化水閘模型
運行插件并打開創建的水閘模型,根據設計工程的實際情況在工程基本資料界面選擇不同水位參數及地基類別、通過模型參數交互模塊調整模型對應的參數值大小;打開參數交互界面,其中計算參數和有效深度值可以通過模型直接讀取到TextBox控件中,也可以在TextBox控件中輸入修改值。方案一(水平防滲設計方案)見圖6、7,方案二(水平防滲和垂直防滲相結合設計方案)見圖8、9。

圖6 方案一工程基本資料界面(模型中紅色部分為防滲長度)

圖7 方案一參數獲取界面

圖8 方案二工程基本資料界面(模型中紅色部分為防滲長度)

圖9 方案二參數獲取界面
點擊參數交互界面下端的“計算”按鈕,得出各段的阻力系數值、水頭損失值、進口段和出口段的水頭修正值以及滲流出口處的坡降。以正常蓄水位工況為例,2種設計方案的計算結果見圖10、11,TextBox控件底色并未發生改變,故得出計算結果滿足閾值要求。

圖10 方案一計算結果

圖11 方案二計算結果
因AutoBank軟件被廣泛應用在水工建筑物的滲流計算中,故采用相同設計尺寸、水位條件、地基類型,將參數添加到AutoBank軟件進行計算得出結果,與滲流計算插件計算結果進行對比具有一定的參考意義。以無板樁設計方案正常蓄水位工況下為例(表1),得出結論:插件與AutoBank軟件計算結果基本一致,說明了插件計算的可靠性。

表1 計算結果對比
基于正向設計理念開發了基于Revit二次開發的水閘滲流計算插件,實現了滲流計算分析全過程可視化交互式操作,使計算結果直接反映到水閘防滲體的設計上,為水閘防滲設計提供了2種方案(水平方式、水平與垂直方式兩者兼有)。實時比較2種方案的防滲效果和尺寸設計,取得以下3個成果:①利用TextBox控件將模型參數與插件實現貫通,達到TextBox控件數值改變,模型隨之改變,增強了模型的復用性;②通過創建窗口,將水閘設計的滲流計算、通過代碼進行抽象封裝,實現了快速計算和結果的即時判別;③個性化設計方案創建,在防滲設計中考慮到多種防滲體的選擇,本插件可通過是否增設垂直防滲體來選擇設計方案,實現了即時的方案比選。
最后,通過實例驗證取得了良好的實踐效果,有效避免了因為數據模糊等原因造成的返工,提高了設計及復核效率,同時還滿足實際設計生產中方案比選的行業需要。考慮到水利工程類型的多樣性和設計的復雜性,本文的研究對象僅限于水閘工程,未來可以進行其他水利工程的相關計算插件研究。本文針對于水閘的滲流問題的研究,在一定程度上可為BIM技術在水利行業的進一步深化應用提供技術參照。