?

Revit 平臺中扶壁放置程序的二次開發

2022-03-09 04:45陳蕾蕾劉占午
水利信息化 2022年1期
關鍵詞:擋土墻圓弧二次開發

陳蕾蕾 ,劉占午 ,徐 鵬 ,何 琴

(1.江蘇省水利勘測設計研究院有限公司,江蘇 揚州 225127;2.江蘇省水利建設工程有限公司,江蘇 揚州 225007;3.江蘇省水利科學研究院,江蘇 南京 210017)

0 引言

21 世紀,以信息化技術為支撐,通過云計算、大數據、物聯網、移動終端、人工智能、水利模型、傳感器等新興技術的應用[1],水利事業進入蓬勃發展的新時期,傳統水利正逐步轉化成現代化水利[2]。隨著國家對水利信息化工作重視度的不斷提高,BIM(Building Information Modeling),即建筑信息模型技術逐漸應用于水利工程項目中[3]。水利工程建筑物 BIM 模型建立一個真實描述工程設計的數字信息模型,是實現可視化仿真技術的基礎[4]。水利工程與普通建筑工程特點不同,其建模順序、方法、要求也會有所不同,因此需要進行定制化建模[5]。Autodesk 公司開發的 Revit 軟件可進行參數化三維建模、協同設計,為設計人員提供真實的三維視角[6],且 Revit 軟件開放二次開發接口 API,允許用戶通過接口解析 Revit 數據并根據需求進行定制化開發[7]。

Revit 平臺上手動創建扶壁式擋土墻主要分為2 個步驟:1)通過輪廓放樣[8]創建 1 個擋土墻;2)通過輪廓放樣創建 1 個扶壁,將扶壁放置在擋土墻導線上并根據需求進行陣列和偏轉。對于單直線或者單圓弧導線型擋土墻扶壁放置操作并不復雜,但是對于導線為組合線型,如折線型或者直線與圓弧的組合型,扶壁放置尤為困難,需要手動計算扶壁放置的間距和旋轉角度。若是采用基于 Revit 平臺的扶壁式擋土墻三維建模二次開發程序[9]可通過代碼計算扶壁間距和旋轉角度,提高了建模效率,如圖1 和 2 所示,但是二次開發程序中固定了導線的類型(直線或者圓?。┖蛽跬翂Ψ较颍ㄖ荒転檎颍?,并未考慮多線型導線和反向擋土墻模型的扶壁放置,因此本研究基于 Revit 平臺和 C# 技術研發扶壁放置程序,可通過選擇導線和墻體兩側邊緣線快速放置扶壁,滿足異型導線和正反向懸臂式擋土墻的扶壁放置。

圖1 扶壁式擋土墻插件輪廓設置

1 二次開發的基本原理

扶壁放置程序二次開發是通過 Revit 開放的接口 API 和 C# 技術將手動操作步驟以程序代替的過程,利用后臺代碼執行人工和計算操作從而簡化整個操作流程,提高用戶建模效率,簡化建模過程。

扶壁放置程序通過模擬手動放置扶壁的過程以程序代替人力的方式簡化用戶操作,與以往開發的二次程序略有不同,扶壁放置程序需要與用戶進行多次交互選擇,比如需要用戶選擇“扶壁放置路徑”,并選擇“擋墻兩側邊緣線”,且因為扶壁與原來的擋墻并不是一個整體,需要代碼在底層將扶壁與擋墻進行連接,因此扶壁放置程序涉及 Revit 的兩大類 UIDocument 和 Document[10]。UIDocument類對主要提供獲取元素(Selection)、顯示元素(Show Elements)和視圖管理(Active Document)3 種功能,Document 類可以打開或創建 Revit 的族或項目文件并在已打開的當前文件中進行拉伸(Extrusion)、放樣(Sweep)、連接(Join)等操作。

圖2 扶壁式擋土墻插件導線設置

手動放置扶壁的 UI 界面操作主要包含放樣創建單個扶壁模型,陣列、旋轉偏移角度及墻體和扶壁模型連接[11],對于導線比較復雜的擋土墻陣列和偏轉角度涉及計算,尤其是偏轉角度需要每個扶壁獨立進行,無法批量操作。扶壁放置程序的二次開發借鑒了手動操作步驟,其設計流程如圖3 所示,用戶根據界面提示拾取擋土墻的導線和兩側邊緣線,拾取操作完成后界面會跳出扶壁參數設置[12]界面如圖4 所示,該界面中包含扶壁的輪廓參數設置、扶壁放置個數、間距顯示及拾取的導線信息。程序根據界面中輸入的扶壁個數、扶壁厚度導線的長度計算扶壁之間的間距并得到扶壁的偏移點,通過兩側邊緣線計算擋土墻的方向及扶壁的偏轉角度,最后批量生成符合程序判定要求的扶壁并將他們與擋土墻連接使其成為一個整體。

圖3 二次開發設計流程圖

圖4 扶壁參數設置界面

2 二次開發的技術難點

扶壁放置程序有兩大難點:1)通過導線和兩側邊緣線判斷當前擋土墻是正向還是反向;2)對選擇的導線進行陣列,導線的數量和類型由用戶手動操作選擇,并根據選擇的導線類型和擋墻的方向計算扶壁放置后的偏轉角度。

2.1 判斷擋土墻的方向

判斷擋土墻的方向主要依賴擋土墻兩側邊緣線和與其相交的導線,直線型與圓弧型導線判斷方向的方法并不一致,直線型導線判斷方向的主要步驟是:1)計算直線和兩側邊緣線某一條線的交點;2)根據交點確定是否反置邊緣線,確保直線和邊緣線是正向向量的關系;3)計算直線與邊緣線的法線向量;4)根據法線向量的Z值得到擋土墻的方向,如果Z> 0 則是正向,Z< 0 則是反向。

圓弧型導線判斷方向的主要步驟是:1)計算圓弧和兩側邊緣線某一條線的交點;2)以交點為起點,圓弧的圓心為終點,生成新的一段直線;3)判斷直線與有交點的邊緣線的關系,如果是重合或者完全相同則是正向,否則就是反向,其判斷流程圖如圖5 所示。

圖5 判斷流程圖

2.2 扶壁的陣列和偏轉

選中的導線集合通常是無序狀態,計算扶壁的陣列點之前需要先將導線排序,即確保選中的導線集合是首尾相連的狀態,默認排序規則是從左向右;扶壁的陣列算法是一個大循環,以扶壁間距為度量單位對導線集合進行切割,為確保偏轉是扶壁能與墻體有效連接,不存在縫隙,陣列算法中最后1 個放置點需要偏移“扶壁厚度”單位;扶壁的旋轉算法是 2 層循環,外層循環的主體是導線集合,內層循環的主體是陣列算法中得到的陣列點集,圓弧型導線計算旋轉角度時還需考慮擋土墻的方向,具體的扶壁陣列、旋轉算法描述如圖6 所示。

圖6 扶壁陣列、旋轉算法解析

3 二次開發的效果展示

Revit 平臺中扶壁創建方式主要包含手動、扶壁式擋土墻二次開發和扶壁放置 3 種插件創建方式,它們的操作步驟各有不同,但其硬件環境均要求單核或者多核 intel/英特爾 i5 以上 CPU 且內存 2 GB 以上 PC 機,軟件環境均要求 Windows 7.0(64 位)以上操作系統且安裝 Revit 2014 以上版本軟件,3 種創建方式的效率和適用范圍對比如表1 所示。

表1 扶壁放置插件使用說明及效率和適用范圍對比表

扶壁放置插件可明顯提高扶壁模型創建的效率并且具有廣泛的適用范圍,插件的效果展示如圖7所示,利用扶壁放置程序為 19 個懸臂式擋土墻放置扶壁一共只需大約 12 min,無論導線的類型是直線、圓弧或者復雜類型,無論擋土墻的方向是正向還是反向,扶壁放置程序均可以根據用戶需求配置扶壁。

圖7 扶壁放置程序效果展示圖

4 結語

引淮入石泵站工程房山翻水站工程曾采用扶壁放置插件完成部分擋土墻設計,設計結果滿足施工圖設計要求,該插件的通用性比較強,適用于不同類型的擋土墻,如懸臂式或空箱式擋土墻,正向或反向擋土墻,異型或常規導線擋土墻,只需選擇導線和兩側邊緣線并輸入界面參數即可快速有效地完成扶壁放置,且扶壁放置程序模擬手動放置扶壁過程并將底層算法封裝,用戶使用觀感簡易方便,不會覺得操作復雜難懂,可明顯提高用戶使用的積極性。但是使用扶壁放置程序有一個前提,Revit 當前活動文檔中必須已經創建或者導入 1 個擋土墻,因此用戶需要對 Revit 軟件有相應的知識儲備和操作經驗。扶壁放置程序類似于工具包,為擋土墻主體服務,擋土墻主體缺少某個構件時,工具包可方便迅速地彌補模型的不足,以此為借鑒經驗可根據需求研發地連墻、擋浪板、樁基等插件工具包。

猜你喜歡
擋土墻圓弧二次開發
淺析圓弧段高大模板支撐體系設計與應用
市政道路工程常用擋土墻類型探析
淺議樁基托梁擋土墻結構的設計與應用
外圓弧面銑削刀具
淺談Mastercam后處理器的二次開發
半圓與半圓弧
淺談選廠常見擋土墻設計
如何讓學生更好地掌握圓弧連接的畫法
例談課本習題的“二次開發”
常用擋土墻的主要特點與設計要點分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合