• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Revit平臺的墻體模型自動生成算法

      2021-08-15 08:44:02
      鐵路計算機應(yīng)用 2021年7期
      關(guān)鍵詞:圖元弧形中心線

      王 博

      (中鐵電氣化局集團有限公司 基礎(chǔ)設(shè)施投資分公司,北京 100043)

      目前,BIM 技術(shù)在民用建筑、高速鐵路、城市軌道交通等工程領(lǐng)域已經(jīng)得到深度應(yīng)用并且取得良好的效果,相對于傳統(tǒng)的CAD 技術(shù),BIM 技術(shù)以其出色的可視化、信息化水平贏得業(yè)界人士的廣泛認可[1]。BIM 技術(shù)的應(yīng)用依賴于其精確的三維幾何模型,雖然BIM 建模軟件較CAD 具備強大的三維建模能力,但是依然不能滿足工程技術(shù)人員對快速建立高精度三維幾何模型的需求,同時,建立BIM 幾何模型的人力、時間成本也占據(jù)了整個BIM 實施成本的大部分。因此,業(yè)界急需找到快速生成模型的方法將BIM 技術(shù)人員從繁瑣的三維建模任務(wù)中解放出來[2],從而將大部分精力投入到BIM 應(yīng)用中以發(fā)揮BIM 技術(shù)真正的實力。

      針對上述問題,通過分析軌道交通工程施工圖墻體的表示方法,提出其自動生成算法,利用C#語言在Revit 平臺上進行二次開發(fā),實現(xiàn)墻體的自動生成。上述算法和程序已經(jīng)應(yīng)用到城市軌道交通工程換乘通道弧形墻體及北京—張家口高速鐵路(簡稱:京張高鐵)電纜溝弧形墻體模型創(chuàng)建中,提高了建模效率及模型精確性的同時,驗證了算法的可行性和準確性。

      1 CAD 圖元信息識別

      1.1 圖元組成

      圖元是CAD 操作和組成畫面的最基本元素,在工程圖紙中,常用的圖元包括:點、直線、圓弧、曲線、橢圓等。CAD 圖是一種矢量圖形文件,文件采用記錄圖形端點和向量的形式描述圖形內(nèi)容,具有無級縮放、不失真等特點,結(jié)構(gòu)工程圖紙中表示墻體的圖元都是按照實際尺寸繪制并且用圖層、線型等加以區(qū)分[3]。因此,可以通過圖層區(qū)分各類圖元進而讀取相關(guān)圖元矢量信息的方式在Revit 中進行三維重建[4]。

      1.2 圖元過濾及幾何信息提取

      施工圖中有表示墻體的平行雙線圖元及表示柱、梁、板等構(gòu)件的圖元,設(shè)計人員將表示不同構(gòu)件的圖元以不同的圖層區(qū)分。因此,可以通過圖元的圖層信息過濾掉圖紙中表示墻體之外的圖元。表示結(jié)構(gòu)墻體的圖元一般包括直線、多段線、圓,Revit 中分別以Line、PolyLine、Arc 來表示以上圖元。讀取圖元類型信息,將其按照Line、PolyLine、Arc 分類儲存于墻線鏈表中,Arc 類型的弧形墻線儲存于m_ArcList 中。

      2 墻體重疊線處理

      CAD 圖紙中的圖元經(jīng)常會出現(xiàn)重疊的情況。圖元重疊對于CAD 出圖沒有任何影響,但對CAD 圖元的識別和三維重建造成的影響是致命的。如果不進行圖元重疊處理,直接用這些圖元生成墻,則會出現(xiàn)邊界重疊、連接錯誤的墻體。因此,圖元信息檢索、儲存之前要對這些重疊的圖元進行分類處理,再計算得到墻中心線,進而生成墻以保證模型的準確性[5]。

      利用CAD 軟件進行工程圖紙繪制過程中,無論以何種方式繪制的圓弧,軟件均能保留圓弧起點角度、圓弧圓心角度、圓心、半徑等圖元信息。圓弧起點角度以x軸正方向沿逆時針旋轉(zhuǎn)為正,范圍為0~2 π。

      兩圓弧重疊的前提條件是其圓心重合、半徑相等。因此通過過濾、篩選出兩條圓心重合、半徑相等的圓弧作為待處理的重疊圓弧。讀取圓弧起點角度∠XOB、圓心角∠BOE,并將∠XOE=∠XOB+∠BOE 記做圓弧終點角度。通過兩圓弧端點角度的幾何關(guān)系可將兩圓弧的重疊分為重合、重疊、包含及其他4 種情況,針對不同情況采取相應(yīng)的處理措施,最終實現(xiàn)圖元的重疊處理。如圖1 所示,圖1(a)所示為圓弧重合,圖1(b)~(c)所示為圓弧重疊、圖1(d)~(i)所示為圓弧包含。圖1(j)表示經(jīng)過重疊處理之后的圓弧。圖中O、B、E 分別表示圓弧的圓心、起點、終點。Arc1、Arc2表示下標為1、2 的圓弧。

      圖1 重疊圓弧分類及處理

      2.1 圓弧重合

      兩圓弧重合判斷條件如下:

      ∠XOB1=∠XOB2,∠XOE1=∠XOE2,如 圖1(a)所示。

      針對上述圓弧重合情況,刪除Arc2,留下Arc1作為圖1(j)所示的Arc。

      2.2 圓弧重疊

      兩圓弧重疊分為以下2 種情況:

      (1)∠XOB1<∠XOB2<∠XOE1<∠XOE2,如圖1(b)所示。

      (2)∠XOB2<∠XOB1<∠XOE2<∠XOE1,如圖1(c)所示。

      針對上述情況(1),刪除Arc1、Arc2,以O(shè) 為圓心,以B1、E2兩點為端點繪制新的圓弧作為圖1(j)所示的Arc;針對上述情況(2),刪除Arc1、Arc2,以O(shè) 為圓心,以B2、E1兩點為端點繪制新的圓弧作為圖1(j)所示的Arc。

      2.3 圓弧包含

      兩圓弧重包含分為以下情況:

      (1)∠XOB1≤∠XOB2<∠XOE2≤∠XOE1,等號不同時成立;如圖1(d)、圖1(e)、圖1(f)所示。

      (2)∠XOB2≤∠XOB1<∠XOE1≤∠XOE2,等號不同時成立;如圖1(g)、圖1(h)、圖1(i)所示。

      針對上述情況(1),刪除Arc2,將Arc1作為圖1(j)所示的Arc;針對上述情況(2),刪除Arc1,將Arc2作為圖1(j)所示的Arc。

      2.4 其他

      將不屬于上述重合、重疊、包含的情況成為其他情況,針對此類情況不對相應(yīng)弧線做任何處理,均將其作為單獨的Arc。

      綜上所述,通過判斷圓弧端點角度信息,將圓弧位置關(guān)系分為上述4 種情況。對于兩圓弧重合、包含的情況,均刪除其中圓心角較小的圓弧,以圓心角較大的圓弧作為重疊處理后的圓弧Arc;對于兩圓弧重疊的情況刪除Arc1、Arc2,以O(shè) 為圓心,以兩圓弧起點角度較小的起點以及終點角度較大的終點為端點繪制新的圓弧作為重疊處理后的圓弧Arc[6];對于其他情況,不做任何處理,兩圓弧都作為單獨的Arc。將上述經(jīng)重疊處理后的Arc 替換墻線鏈表m_ArcList 中原有的重疊墻線。

      3 墻參數(shù)獲取

      3.1 墻厚、墻中心線的獲取

      識別用戶選擇的任意兩條代表弧形墻的同心圓弧,讀取圓弧半徑并將半徑之差作為墻體厚度W,然后遍歷經(jīng)過重疊處理的墻線,找到所有半徑差為W的兩條同心圓弧,根據(jù)其位置關(guān)系計算得到墻中心線。

      平面圖中半徑不同的同心圓弧的位置關(guān)系有如圖2 所示的2(a)~(j)8 種情況。圖2 中Arc1,Arc2表示篩選出的距離為W的兩根弧形墻線,wall-CenterArc 表示處理后得到的弧形墻中心線。具體分類如下。

      圖2 生成墻中心線

      (1)∠XOB1=∠XOB2,∠XOE1=∠XOE2;如圖2(a)所示。

      (2)∠XOB2<∠XOB1<∠XOE2<∠XOE1;如圖2(b)所示。

      (3)∠XOB1<∠XOB2<∠XOE1<∠XOE2;如圖2(c)所示。

      (4)∠XOB2<∠XOB1<∠XOE1<∠XOE2;如圖2(d)所示。

      (5)∠XOB1=∠XOB2<∠XOE1<∠XOE2;如圖2(e)所示。

      (6)∠XOB1=∠XOB2<∠XOE2<∠XOE1;如圖2(f)所示。

      (7)∠XOB1<∠XOB2<∠XOE2<∠XOE1;如圖2(g)所示。

      (8)∠XOB1<∠XOB2<∠XOE1=∠XOE2;如圖2(h)所示。

      (9)∠XOB2<∠XOB1<∠XOE1=∠XOE2;如圖2(i)所示。

      (10)其他;如圖2(j)所示。

      針對上述情況(1)、(4)、(5)、(9),以O(shè)為圓心、∠XOB1和∠XOE1為起點和終點角度、Arc1、Arc2半徑之和的一半為半徑,繪制圓弧作為相應(yīng)的墻中心線wallCenterArc;

      針對上述情況(6)~(8),以O(shè) 為圓心、∠XOB2和∠XOE2為起點和終點角度、Arc1、Arc2半徑之和的一半為半徑,繪制圓弧作為相應(yīng)的墻中心線wallCenterArc;

      針對上述情況(2),以O(shè) 為圓心、∠XOB1和∠XOE2為起點和終點角度、Arc1、Arc2半徑之和的一半為半徑,繪制圓弧作為相應(yīng)的墻中心線wallCenterArc;

      針對上述情況(3),以O(shè) 為圓心、∠XOB2和∠XOE1為端點,Arc1、Arc2半徑之和的一半為半徑,繪制圓弧作為相應(yīng)的墻中心線wallCenterArc;

      針對上述情況(10),不做任何處理。

      刪除利用其生成過墻中心線的部分,留下沒有用過的部分,與其他圓弧循環(huán)對比,最終可以得到所有弧形墻體中心線[7]。

      按照以上方式提取墻中心線后將圓心重合且有重合端點的墻中心線進行首尾排序之后再連接成整體,最終得到完整的弧形墻體中心線。

      3.2 墻高、墻類型的獲取

      讀取用戶在交互界面中輸入的墻高數(shù)據(jù)作為墻體高度。

      墻屬于系統(tǒng)族,因此墻類型不能直接重建,只能通過復(fù)制系統(tǒng)的墻類型建立。過濾出Revit 所有內(nèi)置的墻類型,如果沒有合適的墻類型,程序?qū)⒆詣訁⒄找延械膲︻愋蛣?chuàng)建厚度為W的新墻類型[8]。

      4 墻體生成

      循環(huán)對比經(jīng)過重疊處理的圓弧墻線鏈表m_ArcList,找到所有半徑差為墻厚W的同心圓弧,然后通過上述弧形墻中心線算法計算出所有厚度為W的弧型墻中心線,最后參照用戶輸入的墻高、墻類型,調(diào)用API 創(chuàng)建墻函數(shù)批量生成所有厚度為W的墻。軌道交通工程中墻體包括側(cè)墻以及內(nèi)部的樓梯、房間墻等,墻厚度可能多種,通過上述操作可生成所有厚度的墻[9]。

      5 測試

      5.1 算法測試

      針對本文所述算法,利用Visual Studio 2019 開發(fā)工具以及C#語言,基于.NET 平臺編寫程序[10]。處理重疊線段,通過相應(yīng)算法獲取墻中心線及墻體厚度,提取用戶輸入的墻高和墻類型生成弧形墻體。

      5.2 程序測試

      在Revit2018 環(huán)境下運行上述程序,針對京張高鐵八達嶺長城站出入口通道施工圖生成其弧形墻體模型,如圖3 所示。

      圖3 弧形墻體測試效果

      軌道交通工程中普遍存在大量由圓弧墻體組成的電纜溝,利用程序生成京張高鐵新保安變電所電纜溝模型,如圖4 所示。

      圖4 弧形電纜溝測試效果

      本程序在京張高鐵BIM 建模過程中得到充分應(yīng)用,提高了建模效率。與傳統(tǒng)建模方式對比,利用本程序自動生成的弧形墻體模型及弧形電纜溝模型具有較高的模型精度,能夠滿足工程需求。此外,將程序稍加改動,通過調(diào)用Microstation API 中的SweepProfileAlongPath()函數(shù),即可在Bentley 平臺上實現(xiàn)墻體的自動生成。

      6 結(jié)束語

      綜上所述,算法及程序可以顯著提高建模效率,從而將BIM 技術(shù)人員從繁瑣的三維建模任務(wù)中解放出來,將大部分精力投入到BIM 應(yīng)用中以發(fā)揮BIM技術(shù)真正的實力。本文僅針對工程中常見的弧形墻體研究其自動生成算法,直形墻體、框架柱、圍護樁、樓板及BIM 構(gòu)件屬性信息的自動生成算法作者已在其他文章中闡述,后期將針對結(jié)構(gòu)施工圖中鋼筋的三維重建研究其實現(xiàn)算法。

      猜你喜歡
      圖元弧形中心線
      一種組態(tài)控件技術(shù)在電力監(jiān)控系統(tǒng)中的運用
      為什么彩虹是弧形的
      學(xué)術(shù)出版物插圖的編排要求(一):圖注
      聯(lián)鎖表自動生成軟件的設(shè)計與實現(xiàn)
      彩虹為什么是弧形的
      第十講 幾何公差代號標注示例10
      ——目鏡套筒
      基于Qt繪圖系統(tǒng)的圖形應(yīng)用優(yōu)化研究與實現(xiàn)
      軟件(2016年12期)2016-02-13 05:58:14
      X線攝影中中心線對DR攝影質(zhì)量的重要性
      天上的彩虹為什么總是呈現(xiàn)弧形?
      河北遙感(2015年2期)2015-07-18 11:11:15
      基于Meanshift和Hough變換的秧苗行中心線提取
      武强县| 长子县| 阳春市| 万荣县| 雷州市| 桃园县| 林周县| 襄汾县| 福建省| 靖边县| 开化县| 金寨县| 汶上县| 仪陇县| 布拖县| 光山县| 政和县| 教育| 桐乡市| 承德市| 隆昌县| 永康市| 涞源县| 象州县| 涟水县| 紫阳县| 定日县| 安化县| 万州区| 泾川县| 台山市| 巴塘县| 上虞市| 贵定县| 海原县| 柘荣县| 老河口市| 阿拉善盟| 谢通门县| 南江县| 中江县|