• 
    

    
    

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

      基于Dynamo 的族構(gòu)件精準(zhǔn)放置建模方法研究

      2023-09-12 06:54:30王茹珍王慶國
      土木建筑工程信息技術(shù) 2023年3期
      關(guān)鍵詞:嵌套中心線護(hù)欄

      王茹珍 王慶國

      (武漢科技大學(xué) 汽車與交通工程學(xué)院,武漢430081)

      引言

      路橋BIM 是構(gòu)建智慧交通的基礎(chǔ)[1],高效率、智能化的路橋BIM 建模對于長周期、大任務(wù)量的生產(chǎn)設(shè)計(jì)與施工運(yùn)營管理具有重要意義[2]。因此,探索一種路橋BIM 高效建模方法成為路橋工程領(lǐng)域數(shù)字化建設(shè)的研究熱點(diǎn)[3]。

      目前,根據(jù)標(biāo)高與軸網(wǎng)進(jìn)行定位放置常規(guī)族構(gòu)件的傳統(tǒng)路橋BIM 建模方式(下文簡稱傳統(tǒng)手工建模方法M1)效率低,不具有構(gòu)建與批量處理形體扭曲度高的復(fù)雜族功能,且在緩和曲線段建模過程中存在以直代曲的誤差[4,5]。雖然部分學(xué)者利用Dynamo 編程技術(shù)對手工建模方式進(jìn)行了改進(jìn),將族的放置點(diǎn)里程號(hào)進(jìn)行了標(biāo)識(shí)與分類識(shí)別(下文簡稱奇偶列分類建模方法M2),實(shí)現(xiàn)了族構(gòu)件批量旋轉(zhuǎn)放置建模,但其未考慮路拱坡度,族構(gòu)件放置精度較低[6,7]。

      針對以上問題,本文提出了由數(shù)據(jù)驅(qū)動(dòng)的新型BIM 智能建模方法(下文簡稱智能建模方法M3),基于Dynamo 平臺(tái)進(jìn)行常規(guī)功能節(jié)點(diǎn)、DesignScript 代碼塊與自定義PythonScript 節(jié)點(diǎn)端口匹配,實(shí)現(xiàn)“族”精確放置程序設(shè)計(jì)。首先,通過DesignScript 代碼塊與常規(guī)功能節(jié)點(diǎn)結(jié)合進(jìn)行數(shù)據(jù)讀取,利用PythonScript 節(jié)點(diǎn)調(diào)用Revit.API 第三方庫,將公用函數(shù)封裝成函數(shù)節(jié)點(diǎn)進(jìn)行參照點(diǎn)坐標(biāo)系修正。然后通過PythonScript 節(jié)點(diǎn)遍歷中心線里程列表,依次調(diào)整族的放置參照點(diǎn),從而使族構(gòu)件實(shí)現(xiàn)批量精確定位放置。

      1 基于Dynamo 高精度定位的自適應(yīng)族放置程序設(shè)計(jì)

      本文基于自適應(yīng)嵌套族的放置程序設(shè)計(jì)主要分為三個(gè)階段:

      (1)基于常規(guī)功能節(jié)點(diǎn)與代碼塊串接的路橋中心線數(shù)據(jù)源處理程序設(shè)計(jì);

      (2)基于常規(guī)功能節(jié)點(diǎn)與代碼塊串接的自適應(yīng)嵌套族數(shù)據(jù)源處理程序設(shè)計(jì);

      (3)基于自定義Python Script 節(jié)點(diǎn)的嵌套族參照點(diǎn)坐標(biāo)系修正程序設(shè)計(jì)。

      1.1 路橋中心線數(shù)據(jù)源處理程序設(shè)計(jì)

      路橋中心線數(shù)據(jù)源的創(chuàng)建及數(shù)據(jù)讀取和處理程序是開展自動(dòng)化離散放置族構(gòu)件的BIM 設(shè)計(jì)工作基礎(chǔ)[8,9]。

      以Dynamo 為設(shè)計(jì)平臺(tái),利用File.Path 節(jié)點(diǎn)獲取橋梁中心線樁號(hào)的數(shù)據(jù)源文件存儲(chǔ)路徑,并將文件路徑作為參數(shù)傳入Files.FromPath 節(jié)點(diǎn),該節(jié)點(diǎn)通過文件路徑獲取并傳出文件對象。利用Data.ImportExcel 節(jié)點(diǎn)獲取文件對象逐樁坐標(biāo)表中的坐標(biāo)信息和對應(yīng)樁號(hào)的高程信息,將其傳入List.Deconstruct 節(jié)點(diǎn),同時(shí)生成含每列數(shù)據(jù)字段名的第一項(xiàng)列表和含有設(shè)計(jì)數(shù)據(jù)的其余項(xiàng)列表兩部分。

      含有設(shè)計(jì)數(shù)據(jù)的列表通過List.Transpose 節(jié)點(diǎn)實(shí)現(xiàn)列表行列互換(設(shè)計(jì)數(shù)據(jù)轉(zhuǎn)置為按列分類的數(shù)據(jù)列表),空值占位保證列表轉(zhuǎn)化前后始終為矩形形態(tài),避免后續(xù)節(jié)點(diǎn)讀取數(shù)據(jù)失敗而報(bào)錯(cuò)。由Code Block 節(jié)點(diǎn)根據(jù)占位符參數(shù)讀取相應(yīng)數(shù)據(jù)列表,由Point.By Coordinates節(jié)點(diǎn)讀取x、y、z 參數(shù)相對應(yīng)的笛卡爾坐標(biāo)數(shù)據(jù)列表,并通過笛卡爾坐標(biāo)系形成點(diǎn)規(guī)范表數(shù)據(jù),按照樁號(hào)生成一系列路線中線點(diǎn)數(shù)據(jù)。

      利用PolyCurve.Bypoints 節(jié)點(diǎn)將含有點(diǎn)數(shù)據(jù)列表的道路中線點(diǎn)擬合為多段線,再利用Curve.PointsAtEqualChordLength 節(jié)點(diǎn)等間距分割,并通過List.NormalizeDepth 節(jié)點(diǎn)實(shí)現(xiàn)起始與終點(diǎn)坐標(biāo)整合,將其傳入NurbsCurve.ByPoints 節(jié)點(diǎn)進(jìn)行折線點(diǎn)間插值,最終在Revit 界面生成具有均勻局部坐標(biāo)系的相對光滑橋梁中心線。

      基于Dynamo 編程節(jié)點(diǎn)的中心線樁號(hào)數(shù)據(jù)處理程序如圖1 所示。

      圖1 道路數(shù)據(jù)處理程序圖

      1.2 自適應(yīng)嵌套族參數(shù)處理程序設(shè)計(jì)

      在確定族構(gòu)件沿路橋中心線放置的里程數(shù)據(jù)源后,還需分析路橋上部結(jié)構(gòu)、下部結(jié)構(gòu)和附屬結(jié)構(gòu)的族類型建造方式,確定其與路橋中心線正向沿線方向的旋轉(zhuǎn)角度和距離參數(shù),進(jìn)行族類型參數(shù)數(shù)據(jù)源的讀取與處理程序設(shè)計(jì)。

      利用Files.fromPath 節(jié)點(diǎn)調(diào)取族類型設(shè)計(jì)數(shù)據(jù),Data.ImportExcel 節(jié)點(diǎn)讀取外部Excel 文件中處理完成的設(shè)計(jì)數(shù)據(jù)[10]。通過List.Deconstruct 節(jié)點(diǎn)生成含每列數(shù)據(jù)字段名的第一項(xiàng)列表和含有設(shè)計(jì)數(shù)據(jù)的其余項(xiàng)列表兩部分。將含數(shù)據(jù)字段名的列表傳入List.TakeItems節(jié)點(diǎn),使Code Block 節(jié)點(diǎn)值為負(fù)一,讀取倒數(shù)第一列編碼數(shù)據(jù)字段名,隨后將編碼數(shù)據(jù)字段名通過String from Object 節(jié)點(diǎn)轉(zhuǎn)化為字符串格式,作為參數(shù)名稱傳入Element.SetParameterByName 節(jié)點(diǎn)的ParameterName接口,從含有設(shè)計(jì)數(shù)據(jù)的其余項(xiàng)列表中讀取編碼數(shù)據(jù),作為參數(shù)值傳入Element.SetParameterByName 節(jié)點(diǎn)的Value 接口。

      利用Code Block 節(jié)點(diǎn)讀取經(jīng)轉(zhuǎn)置的設(shè)計(jì)數(shù)據(jù)其余項(xiàng)列表中起始樁號(hào)、里程號(hào)、族類型名稱和族類型旋轉(zhuǎn)角度,并設(shè)計(jì)里程號(hào)減去起始樁號(hào)的值為python 節(jié)點(diǎn)預(yù)放置的族實(shí)例距離起點(diǎn)的距離參數(shù)。

      基于Dynamo 編程節(jié)點(diǎn)的族類型數(shù)據(jù)源處理程序如圖2 所示。

      圖2 族類型數(shù)據(jù)處理程序圖

      1.3 自適應(yīng)嵌套族局部坐標(biāo)系旋轉(zhuǎn)修正程序設(shè)計(jì)

      根據(jù)族類型沿線放置里程及其與中心線正向沿線的旋轉(zhuǎn)角度和距離參數(shù)進(jìn)行排布放置的族構(gòu)件精度較低[11,12]。本文在Dynamo 平臺(tái)中進(jìn)行python script 節(jié)點(diǎn)的自定義,批量計(jì)算每一里程樁號(hào)的局部坐標(biāo),使自適應(yīng)族根據(jù)參照點(diǎn)局部坐標(biāo)進(jìn)行精確定位并放置。

      旋轉(zhuǎn)定位放置方法流程如圖3所示,設(shè)計(jì)步驟如下:

      圖3 旋轉(zhuǎn)定位放置方法流程圖

      (1)通過相鄰旋轉(zhuǎn)軸正方向一點(diǎn)(非原點(diǎn))與原點(diǎn)坐標(biāo)值之差判定族類型旋轉(zhuǎn)方向,差值為正,則為順時(shí)針方向,差值為負(fù),則為逆時(shí)針方向;

      (2)利用放置點(diǎn)處的平面坐標(biāo)方位角、縱向傾角及其在對應(yīng)局部坐標(biāo)系與世界坐標(biāo)系軸向量上投影的夾角,進(jìn)行曲線方向方位角計(jì)算;

      (3)通過族類型的ID 標(biāo)識(shí),將族實(shí)例繞世界坐標(biāo)系對應(yīng)軸進(jìn)行自適應(yīng)參照點(diǎn)旋轉(zhuǎn)。

      通過以上步驟,能夠使自適應(yīng)參數(shù)族在線性空間上通過捕捉自適應(yīng)點(diǎn)坐標(biāo)系實(shí)現(xiàn)自由旋轉(zhuǎn),從而根據(jù)道路中心線完成自動(dòng)化布置任務(wù)。鑒于程序具有繼承性、可移植性與穩(wěn)定性等特性,對此算法進(jìn)行封裝處理。封裝該節(jié)點(diǎn)時(shí)將輸入接口設(shè)定為緩和曲線、族類型名稱列表、族類型旋轉(zhuǎn)角度列表、繞X 軸旋轉(zhuǎn)布爾值和繞Y 軸旋轉(zhuǎn)布爾值等參數(shù),然后添加調(diào)整族參數(shù),即輸出接口設(shè)置為構(gòu)件,并通過Element.SetParameterByName 將類型編碼參數(shù)自動(dòng)批量化添加至族類型屬性信息。封裝后的節(jié)點(diǎn)程序設(shè)計(jì)對比傳統(tǒng)根據(jù)奇偶列分類標(biāo)識(shí)放置族構(gòu)件的Dynamo 程序解決了代碼塊冗余、族構(gòu)件定位放置精度低等問題,傳統(tǒng)奇偶列分類建模方法M2 的程序設(shè)計(jì)如圖4 所示,本文所提智能建模方法M3 的旋轉(zhuǎn)定位放置程序設(shè)計(jì)如圖5 所示。

      圖4 基于奇偶列分類放置族的程序設(shè)計(jì)圖

      圖5 旋轉(zhuǎn)定位放置方法程序設(shè)計(jì)圖

      2 實(shí)驗(yàn)驗(yàn)證與分析

      為驗(yàn)證所提智能建模方法M3 的建模放置精度與程序運(yùn)行時(shí)間效率提升效果,本文以某橋附屬結(jié)構(gòu)BIM中路燈及護(hù)欄的參數(shù)化自適應(yīng)嵌套族構(gòu)建與放置為例,運(yùn)用傳統(tǒng)手工建模方法M1、奇偶列分類建模方法M2和智能建模方法M3 進(jìn)行對比實(shí)驗(yàn)。程序運(yùn)行硬件環(huán)境:CPU 為AMD R7-5800H;主頻:3.20GHz;內(nèi)存:16GB;運(yùn)行軟件:Revit2020_Dynamo2.5.0。

      2.1 參數(shù)化自適應(yīng)嵌套族的構(gòu)建

      本文在傳統(tǒng)“公制常規(guī)模型”基礎(chǔ)上,借助“自適應(yīng)公制常規(guī)模型”模板創(chuàng)建橋梁附屬結(jié)構(gòu)路燈、護(hù)欄的嵌套族。即新建自適應(yīng)公制常規(guī)模型樣板項(xiàng)目,設(shè)置自適應(yīng)參照點(diǎn)?;谶B接空間中參考點(diǎn)放置線的設(shè)計(jì)方法,通過調(diào)整自適應(yīng)參照點(diǎn)工作平面,對放置位置進(jìn)行合理改變。鑒于實(shí)例坐標(biāo)系自適應(yīng)點(diǎn)的坐標(biāo)不貼合體量環(huán)境的坐標(biāo)系和貼合放置點(diǎn)處的坐標(biāo)系,而是保持自適點(diǎn)自身的XYZ 軸方向不變,因此將常規(guī)族路燈、常規(guī)族護(hù)欄載入自適應(yīng)常規(guī)族項(xiàng)目中,設(shè)定參照點(diǎn)1 為坐標(biāo)系原點(diǎn),使其自適應(yīng)并定向?yàn)閷?shí)例坐標(biāo)系(xyz),添加材質(zhì),設(shè)定放置點(diǎn)為自適應(yīng)點(diǎn)從而形成路燈、護(hù)欄嵌套族,分別如圖6 ~圖7 所示。由于自適應(yīng)嵌套族的建模核心是參數(shù)的設(shè)計(jì)和綁定,參數(shù)設(shè)定的主要目的是通過調(diào)控相應(yīng)參數(shù),高效驅(qū)動(dòng)族類型其位置、數(shù)量、空間尺寸等屬性信息的改變,使模型有唯一對應(yīng)解的過程[13,14]。因此本文采用連接空間中自適應(yīng)參考點(diǎn),將放置線參照對齊鎖定,進(jìn)行詳圖族中相關(guān)參數(shù)與構(gòu)件參數(shù)關(guān)聯(lián)交互,自適應(yīng)路燈、護(hù)欄嵌套族參數(shù)關(guān)聯(lián)圖分別如圖8 ~圖9 所示。

      圖6 路燈嵌套族

      圖7 護(hù)欄嵌套族

      圖8 路燈參數(shù)關(guān)聯(lián)圖

      圖9 護(hù)欄參數(shù)關(guān)聯(lián)圖

      2.2 由數(shù)據(jù)驅(qū)動(dòng)的中心線生成

      在初始數(shù)據(jù)讀取與處理模塊,本文設(shè)計(jì)的可視化節(jié)點(diǎn)程序采用控制點(diǎn)(路燈/護(hù)欄放置對應(yīng)的中心線點(diǎn))生成要素線,橋梁中心線確定橋梁走向的建模思路。首先對族的幾何、位置等信息的邏輯關(guān)系及算法結(jié)構(gòu)進(jìn)行分析,創(chuàng)建了含有嵌套族的族名稱、起始樁號(hào)、里程號(hào)、及偏轉(zhuǎn)角度等關(guān)鍵信息的Excel 表格,自適應(yīng)嵌套族路燈和護(hù)欄的部分族數(shù)據(jù)源創(chuàng)建分別如表1~表2 所示。其次通過某橋梁工程項(xiàng)目建筑平面施工圖中的道路中心線樁號(hào)里程信息和高程信息,提取出控制點(diǎn)的x、z坐標(biāo)值,然后通過對嵌套族的關(guān)聯(lián)參數(shù)進(jìn)行分析。由于本項(xiàng)目中嵌套族路燈放置點(diǎn)高程參數(shù)h1 為0.8m,放置點(diǎn)距中心線水平距離參數(shù)l 為9m,即自適應(yīng)族放置點(diǎn)沿y 方向偏移x 軸規(guī)范距離9m,因此不需要讀取參數(shù)L,即橋梁中心線南北方向偏移值默認(rèn)取0,控制點(diǎn)y 坐標(biāo)值為0;嵌套族護(hù)欄放置點(diǎn)高程參數(shù)h1 為0m,放置點(diǎn)距中心線水平距離參數(shù)l 為0m,即自適應(yīng)族放置點(diǎn)沿y 方向偏移x 軸規(guī)范距離0m,因此需要讀取參數(shù)L,即橋梁中心線南北方向偏移值默認(rèn)取8.25m,控制點(diǎn)y 坐標(biāo)值為0。創(chuàng)建橋梁中心線坐標(biāo)表如表3 所示。

      表1 路燈族數(shù)據(jù)表

      表2 護(hù)欄族數(shù)據(jù)表

      表3 橋梁中心線坐標(biāo)表

      通過橋梁中心線和自適應(yīng)路燈、護(hù)欄嵌套族參數(shù)處理程序讀取起始里程樁號(hào)、相鄰族類型需放置的里程樁號(hào)、族類型名稱及相對于道路中心線里程號(hào)增大方向的旋轉(zhuǎn)角度,生成放置中心線效果分別如圖10(a)~(b)所示。

      圖10 自適應(yīng)嵌套族模型

      2.3 基于旋轉(zhuǎn)放置方法放置族類型

      由于橋梁中心線與參數(shù)化自適應(yīng)嵌套族路燈及護(hù)欄數(shù)據(jù)處理結(jié)果實(shí)現(xiàn)了X、Y 定位值準(zhǔn)確,因此高精度定位調(diào)整僅需嵌套族繞Z 軸進(jìn)行旋轉(zhuǎn)放置。在自適應(yīng)嵌套族參數(shù)處理程序設(shè)計(jì)中將繞X 軸旋轉(zhuǎn)布爾值和繞Y 軸旋轉(zhuǎn)布爾值調(diào)整為False;調(diào)用批量創(chuàng)建空間模型的Revit.API,運(yùn)行程序使自適應(yīng)族中的自適應(yīng)點(diǎn)按照旋轉(zhuǎn)放置算法邏輯與Dynamo 程序調(diào)整的Z 坐標(biāo)一一映射,完成Dynamo 工作空間與Revit 指定圖層的模型輸出。因此由智能建模方法M3 驅(qū)動(dòng)的路燈嵌套族和護(hù)欄嵌套族在Revit 工作空間中的局部自動(dòng)化放置效果分別如圖11(a)~(b)所示,所測試族構(gòu)件均精確放置到定位點(diǎn)。

      圖11 基于M3 方法的放置圖

      2.4 實(shí)驗(yàn)分析與結(jié)論

      傳統(tǒng)手工建模M1 方法輸出至Revit 內(nèi)的部分路燈族和護(hù)欄族效果分別如圖12(a)~(b)所示,由于傳統(tǒng)手工建模不可避免會(huì)出現(xiàn)視覺偏差,從而導(dǎo)致三維建模精確度不足,因此由自適應(yīng)嵌套族旋轉(zhuǎn)放置程序設(shè)計(jì)的M3 方法,在一定程度上能夠避免人工放置誤差,提高建模精度。

      圖12 基于M1 方法的族放置圖

      為對比本文所提智能建模方法M2 與奇偶列分類建模方法M3 的程序設(shè)計(jì)時(shí)間,取10 次Dynamo 中Tune UP 節(jié)點(diǎn)所測的不同規(guī)模族構(gòu)件放置程序運(yùn)行所耗時(shí)間平均值作為主要評價(jià)指標(biāo),程序運(yùn)行所耗平均時(shí)間的具體數(shù)值如表4 所示。可見相對于利用傳統(tǒng)Dynamo程序?qū)崿F(xiàn)奇偶列分類放置族構(gòu)件的M2 方法,智能建模方法M3 的建模程序平均運(yùn)行時(shí)間減少約60%;就不同BIM 建模方式的階段性建模效率對比,智能建模方法M3 相對于人工建模方法M1 和利用傳統(tǒng)Dynamo程序?qū)崿F(xiàn)奇偶列分類放置族構(gòu)件的M2 方法,其數(shù)據(jù)源構(gòu)建與程序設(shè)計(jì)的高效性也使其在建模工作總進(jìn)程中具備一定優(yōu)勢,如圖13 所示。

      表4 M2 與M3 程序運(yùn)行時(shí)間數(shù)據(jù)表

      圖13 各階段建模消耗時(shí)長對比圖

      3 結(jié)束語

      針對大型復(fù)雜項(xiàng)目,利用自適應(yīng)嵌套族的精準(zhǔn)定位放置程序進(jìn)行BIM 建模,可根據(jù)路橋中心線坐標(biāo)表將構(gòu)件自動(dòng)放置,建模效率提高數(shù)倍以上。

      本文采用以世界坐標(biāo)系為基準(zhǔn)旋轉(zhuǎn)放置參照點(diǎn)局部坐標(biāo)系的精準(zhǔn)定位算法,借助于Python 語言在Dynamo 平臺(tái)上完成了自適應(yīng)常規(guī)模型嵌套族在Revit三維空間內(nèi)的自動(dòng)化批量精準(zhǔn)放置,實(shí)現(xiàn)了以下三個(gè)方面的要求:

      (1)建模技術(shù)路線方面,統(tǒng)一梳理了對于具有參數(shù)化,族類型的復(fù)雜工程建模過程中的數(shù)據(jù)處理邏輯;

      (2)BIM 模型精度方面,通過數(shù)據(jù)驅(qū)動(dòng)實(shí)現(xiàn)族構(gòu)件自動(dòng)化批量放置,保證了模型精度,解決了復(fù)雜線性工程的建模難點(diǎn);

      (3)建模效率方面,利用Python Script 自制節(jié)點(diǎn),實(shí)現(xiàn)模型的參數(shù)快速更新,有效減少人機(jī)交互,提高同類型模型修改重建的效率。

      猜你喜歡
      嵌套中心線護(hù)欄
      例析“立幾”與“解幾”的嵌套問題
      基于嵌套Logit模型的競爭性選址問題研究
      高速公路護(hù)欄碰撞監(jiān)控系統(tǒng)探討
      基于Arduino單片機(jī)的智能多功能護(hù)欄設(shè)計(jì)
      電子制作(2019年20期)2019-12-04 03:51:16
      不要跨越護(hù)欄
      第十講 幾何公差代號(hào)標(biāo)注示例10
      ——目鏡套筒
      高速護(hù)欄引發(fā)離奇官司
      X線攝影中中心線對DR攝影質(zhì)量的重要性
      基于Meanshift和Hough變換的秧苗行中心線提取
      一種基于區(qū)分服務(wù)的嵌套隊(duì)列調(diào)度算法
      丽水市| 邵东县| 阿鲁科尔沁旗| 汝州市| 和平区| 林口县| 临沂市| 淅川县| 新蔡县| 揭西县| 九龙坡区| 武汉市| 旺苍县| 绥德县| 绥中县| 闻喜县| 科技| 江孜县| 堆龙德庆县| 万全县| 海淀区| 玛多县| 万载县| 绥中县| 龙门县| 浦东新区| 三河市| 同仁县| 大渡口区| 若羌县| 抚州市| 望谟县| 射阳县| 甘德县| 河曲县| 玉树县| 门源| 射洪县| 德钦县| 桦川县| 呼伦贝尔市|