• 
    

    
    

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

      ?

      基于BIM技術(shù)的土石方調(diào)運(yùn)程序化探究

      2022-01-12 07:24:34閆若鈺王宗敏
      關(guān)鍵詞:類庫明細(xì)表挖方

      閆若鈺, 王宗敏

      (鄭州大學(xué) 水利科學(xué)與工程學(xué)院,河南 鄭州 450001)

      隨著經(jīng)濟(jì)和施工技術(shù)的發(fā)展,諸如水利、道路、橋梁等大型基礎(chǔ)設(shè)施工程項(xiàng)目的建設(shè)規(guī)模及施工難度也不斷提高,這就要求在項(xiàng)目的設(shè)計(jì)規(guī)劃階段做出有效決策來優(yōu)化施工組織設(shè)計(jì)方案。土石方填挖方量的精確計(jì)算,及土石方調(diào)運(yùn),填挖平衡是施工組織設(shè)計(jì)中的重要環(huán)節(jié),也是影響工程造價(jià)與工期的關(guān)鍵因素之一[1~3]。工程建設(shè)行業(yè)目前存在的對(duì)土石方工程“重計(jì)量而輕設(shè)計(jì)”的傳統(tǒng)觀念已經(jīng)無法滿足不斷提高的設(shè)計(jì)建造標(biāo)準(zhǔn)和成本控制需求。傳統(tǒng)的土石方計(jì)量方法(如斷面法、方格法、等高線法、散點(diǎn)法等)操作相對(duì)復(fù)雜,計(jì)算精度不高,無法快速出量,且不方便設(shè)計(jì)前期多方案比選[4,5]。這些因素都導(dǎo)致了傳統(tǒng)的土方?jīng)Q策方法不能滿足目前工程項(xiàng)目設(shè)計(jì)規(guī)劃周期短、變動(dòng)快、變更多的特點(diǎn),以至于很多工程項(xiàng)目在設(shè)計(jì)前期甚少進(jìn)行土方調(diào)配這項(xiàng)工作,而沒有進(jìn)行精確的計(jì)量和合理的規(guī)劃最終會(huì)影響整個(gè)項(xiàng)目的工期和成本[6~8]。本文將BIM(Building Information Modeling)技術(shù)與數(shù)學(xué)模型求解方法相結(jié)合,探索土石方計(jì)量與土石方調(diào)運(yùn)的程序化實(shí)現(xiàn),以期找到設(shè)計(jì)規(guī)劃階段土石方計(jì)量及調(diào)配高效、便捷、精確的解決方案。

      1 基于BIM技術(shù)的土石方量計(jì)算方法

      1.1 原始地形數(shù)據(jù)的獲取與模型建立

      原始地形數(shù)據(jù)的獲取方法有很多,可以向有關(guān)部門申請(qǐng)大比例現(xiàn)狀地形圖的使用權(quán);也可以通過現(xiàn)場(chǎng)測(cè)繪的方式制作地形圖;隨著遙感測(cè)繪技術(shù)的發(fā)展,無人機(jī)傾斜攝影技術(shù)也被應(yīng)用到工程測(cè)量中;并以其便捷、高效、精確的特點(diǎn)被廣泛認(rèn)可[9,10]。無論哪種方式得到的地形原始數(shù)據(jù)都要經(jīng)過一定的校核處理滿足誤差限制,然后轉(zhuǎn)換成Revit可以識(shí)別的格式后才能使用。Revit 能識(shí)別的帶有高程信息的結(jié)構(gòu)化數(shù)據(jù)文件主要有:DWG/DGN/DXF格式的三維等高線數(shù)據(jù);CSV/TXT格式的高程點(diǎn)數(shù)據(jù)。選擇Revit “體量和場(chǎng)地”選項(xiàng)卡中 “場(chǎng)地建模”面板上的“地形表面”選項(xiàng),將處理好的原始地形數(shù)據(jù)導(dǎo)入,Revit 將自動(dòng)識(shí)別幾何和高程信息,從而創(chuàng)建三維場(chǎng)地模型。

      1.2 場(chǎng)地平整與場(chǎng)地劃分

      創(chuàng)建好的原始地形表面代表開挖平整前的工程場(chǎng)地,基坑開挖和場(chǎng)地平整可以選擇Revit “體量和場(chǎng)地”選項(xiàng)卡中 “修改場(chǎng)地”面板上的“平整區(qū)域”選項(xiàng)。該功能會(huì)基于原始地形模型創(chuàng)建新的地形表面,工作人員可按照設(shè)計(jì)圖紙和施工組織設(shè)計(jì)規(guī)定的開挖平整方案在新生成的地形表面上調(diào)整高程,來進(jìn)行基坑開挖和場(chǎng)地平整:一種方式是添加新的高程點(diǎn);另一種方式是框選原有高程點(diǎn)調(diào)整其高程,高程調(diào)整后的地形表面就是模擬開挖平整后的工程場(chǎng)地。Revit會(huì)根據(jù)兩個(gè)地形表面的高程信息自動(dòng)進(jìn)行差值計(jì)算得出剪切值、填充值、凈剪切/填充值,即對(duì)應(yīng)土石方的挖方、填方、填挖方凈值。

      大型復(fù)雜的土木工程建設(shè)項(xiàng)目施工場(chǎng)地一般有多個(gè)分區(qū),設(shè)計(jì)土石方平衡方案首先需要進(jìn)行各個(gè)施工分區(qū)的具體土石方填挖量的統(tǒng)計(jì),Revit 自帶的 “地形明細(xì)表”功能可以高效、便捷地將土石方填挖數(shù)據(jù)統(tǒng)計(jì)并顯示出來,且統(tǒng)計(jì)是實(shí)時(shí)的,這意味著后續(xù)再進(jìn)行地形表面高程調(diào)整時(shí)發(fā)生的土石方量變化也會(huì)實(shí)時(shí)改變明細(xì)表中的值。但是,在生成地形明細(xì)表之前,首先需要按施工組織設(shè)計(jì)將施工分區(qū)在場(chǎng)地模型中劃分出來,以便獨(dú)立統(tǒng)計(jì)各個(gè)施工分區(qū)的填挖方量,這個(gè)功能需要選擇Revit“體量和場(chǎng)地”選項(xiàng)卡中 “修改場(chǎng)地”面板上的“拆分表面”選項(xiàng),劃分完成后可根據(jù)凈填挖值為劃分出的地塊標(biāo)記名稱,以便統(tǒng)計(jì)。

      1.3 土石方填挖量提取

      將拆分好的施工分區(qū)分別標(biāo)記好名稱后,就可以選擇Revit “視圖”選項(xiàng)卡中 “創(chuàng)建”面板上的“明細(xì)表”下拉選項(xiàng)列里的“明細(xì)表/數(shù)量”選項(xiàng)創(chuàng)建關(guān)鍵字明細(xì)表,在彈出的“新建明細(xì)表”對(duì)話框里將“類別”設(shè)置為“地形”,“階段”設(shè)置為地形創(chuàng)建的階段,并在隨后彈出的“明細(xì)表屬性”對(duì)話框里將“可用的字段”列表里的“名稱”“截面”“填充”“凈剪切/填充”添加到右側(cè)“明細(xì)表”字段框里,點(diǎn)擊確定即可生成地形明細(xì)表,其中的字段分別對(duì)應(yīng)劃分好的施工分區(qū)名稱、挖方值、填方值、填挖方凈值。

      2 基于運(yùn)籌學(xué)的土石方調(diào)運(yùn)數(shù)學(xué)建模

      2.1 運(yùn)輸問題的數(shù)學(xué)模型

      運(yùn)輸問題在運(yùn)籌學(xué)中屬于系數(shù)矩陣有特殊結(jié)構(gòu)的一類線性規(guī)劃問題,具體描述為:

      該問題的數(shù)學(xué)模型為:

      (1)

      2.2 土方調(diào)運(yùn)數(shù)學(xué)建模

      在土方調(diào)運(yùn)方案的求解中,可利用上述運(yùn)籌學(xué)模型進(jìn)行分析[12~14],具體如下:

      (2)

      (3)

      3 Dynamo節(jié)點(diǎn)二次開發(fā)與數(shù)據(jù)處理

      3.1 IronPython與C# 動(dòng)態(tài)鏈接庫(.dll文件)調(diào)用

      IronPython是一種在 .NET下實(shí)現(xiàn)的 Python 語言。由于IronPython與.NET語言(如C#)良好的互操作性,既可以在.NET程序中嵌入Python腳本,又可以在IronPython環(huán)境中訪問.NET程序的動(dòng)態(tài)鏈接庫和類庫里的類,有效地復(fù)用代碼,提高效率。Dynamo軟件中的“Python Script”節(jié)點(diǎn)(圖1)可以運(yùn)行嵌入的IronPython腳本,利用這個(gè)節(jié)點(diǎn)編寫IronPython 代碼,使用IronPython 調(diào)用自定義C#類庫(.dll文件)里的類(class)及類的方法(method)可以很好地解決Dynamo原生節(jié)點(diǎn)無法完成的求解計(jì)算。

      圖1 Python Script節(jié)點(diǎn)

      3.2 C#求解類庫的代碼實(shí)現(xiàn)

      由于IronPython 不支持CPython 的擴(kuò)展程序包,導(dǎo)致在Dynamo中無法使用Python腳本調(diào)用Numpy和SciPy 求解前述運(yùn)籌學(xué)數(shù)學(xué)模型,求解該線性規(guī)劃問題就需要使用C#代碼編寫自定義類庫(.dll文件)來實(shí)現(xiàn)。

      微軟的Microsoft Solver Foundation類庫是一個(gè)數(shù)學(xué)庫,可以很好地對(duì)線性規(guī)劃問題進(jìn)行求解,在進(jìn)行求解類庫代碼實(shí)現(xiàn)時(shí),需要添加對(duì)Microsoft Solver Foundation.dll文件的引用(圖2),添加引用后就可以調(diào)用Microsoft Solver Foundation類庫中的類及類的方法。求解類庫(transportproblem.dll)中主要封裝了三個(gè)自定義類:solvedmodel,transportmodel,ToArray,程序框圖如圖3所示。

      圖2 添加引用

      圖3 程序框圖

      3.3 Dynamo求解節(jié)點(diǎn)的代碼實(shí)現(xiàn)

      前述求解類庫中的transportmodel類與solvedmodel類封裝的方法是用來創(chuàng)建模型和求解模型的,求解時(shí)直接根據(jù)約束條件不同選擇solvedmodel中封裝的不同靜態(tài)方法,其本質(zhì)是solvedmodel類的方法調(diào)用了transportmodel類里封裝的方法。ToArray類中的方法是用來解決IronPython 代碼中List數(shù)據(jù)類型與C#代碼中 Array數(shù)據(jù)類型不匹配問題,由于solvedmodel中封裝的方法需要Array 類型的輸入?yún)?shù),但在Python 腳本中無法創(chuàng)建Array類型對(duì)象,所以需調(diào)用ToArray類中封裝的方法將List類型對(duì)象轉(zhuǎn)換成Array類型對(duì)象后再用作輸入?yún)?shù)求解模型。

      IronPython調(diào)用自定義C#類庫(.dll文件)里的類(class)及類的方法(method)需添加如下代碼:

      clr.AddReference('transportproblem')

      from transportproblem import*

      其中第一個(gè)“transportproblem”是求解類庫名,該句作用是將添加求解類庫(transportproblem.dll)作為引用,第二個(gè)“transportproblem”是名稱空間(namespace)名,該句作用是引用transportproblem名稱空間,transportmodel,solvedmodel,ToArray三個(gè)類都定義在transportproblem名稱空間內(nèi),只有添加對(duì)它的引用才可以調(diào)用其中類的方法。

      Python Script節(jié)點(diǎn)有輸入端口(IN[0])和輸出端口(OUT),其中輸入端口可按需要增加,輸出端口只有一個(gè)不可更改,本例中調(diào)用solvedmodel類的方法需要5個(gè)Array類型的參數(shù),故將輸入端口調(diào)整為5個(gè)(圖4)。節(jié)點(diǎn)內(nèi)部具體代碼如圖5所示。

      圖4 輸入端口調(diào)整

      圖5 運(yùn)輸問題求解節(jié)點(diǎn)內(nèi)部代碼

      3.4 輸入?yún)?shù)的數(shù)據(jù)處理

      Revit中的圖元有很多參數(shù)信息,但Revit本身并不具備專業(yè)的數(shù)據(jù)分析計(jì)算功能,如求解線性規(guī)劃問題,而土方平衡問題需要用線性規(guī)劃模型求解,這就要求在Revit圖元中的信息能被提取出來,并能導(dǎo)入到Dynamo中進(jìn)行分析求解。由于solvedmodel類的方法需要5個(gè)Array類型的輸入?yún)?shù):output(挖方量)、input(填方量)、productions(挖方區(qū))、sales(填方區(qū))、frienghttable(距離矩陣),故需要將這些信息提取出來作為自定義求解節(jié)點(diǎn)的輸入?yún)?shù)。

      利用“Categories”節(jié)點(diǎn)與“All Elements of Category”節(jié)點(diǎn)將劃分的地形圖元提取出來,再利用“Element.GetParameterValueByName”節(jié)點(diǎn)將各個(gè)填挖方區(qū)的名稱及凈填挖值提取出來。但此時(shí)的填挖信息是混合在一起的,不滿足輸入?yún)?shù)格式,而Dynamo原生節(jié)點(diǎn)無法使填挖信息按要求篩選分離,故使用“Python Script”節(jié)點(diǎn)編寫代碼過濾填挖信息,節(jié)點(diǎn)代碼、運(yùn)算結(jié)果分別如圖6,7所示。

      圖6 數(shù)據(jù)過濾節(jié)點(diǎn)內(nèi)部代碼

      圖7 數(shù)據(jù)過濾節(jié)點(diǎn)運(yùn)算結(jié)果

      為便于提取各個(gè)分區(qū)的位置信息,可在各個(gè)地形分區(qū)的中心點(diǎn)放置高程點(diǎn),并按照填挖區(qū)名稱給高程點(diǎn)添加參數(shù)信息(本例中選擇“底部值后綴”)使之便于統(tǒng)計(jì)區(qū)分。

      隨后即可使用“Categories”節(jié)點(diǎn)與“All Elements of Category”節(jié)點(diǎn)將標(biāo)記好的高程點(diǎn)圖元提取出來,再使用“Element.GetLocation”節(jié)點(diǎn)與“Element.GetParameterValueByName”節(jié)點(diǎn)獲取高程點(diǎn)位置坐標(biāo)和填挖區(qū)名稱,并利用“List.FilterByBoolMask”節(jié)點(diǎn)將填挖區(qū)坐標(biāo)篩選分離出來,最后用“Geometry.DistanceTo”節(jié)點(diǎn)(使用叉積運(yùn)算模式)求得距離矩陣。

      值得注意的是,“Geometry.DistanceTo”節(jié)點(diǎn)運(yùn)算出的距離以mm為單位,且此時(shí)提取的數(shù)據(jù)由于沒有經(jīng)過精度處理,小數(shù)點(diǎn)后數(shù)位太多,代碼運(yùn)算時(shí)容易發(fā)生精度溢出從而導(dǎo)致求解程序崩潰,故需在參數(shù)輸入求解節(jié)點(diǎn)之前進(jìn)行單位轉(zhuǎn)換和精度處理,即使用“Convert Between Units”節(jié)點(diǎn)和“Math.Round”節(jié)點(diǎn)進(jìn)行單位換算并舍去多余小數(shù)位。

      3.5 可求解的完整Dynamo節(jié)點(diǎn)

      通過輸入?yún)?shù)的處理和自定義節(jié)點(diǎn)的開發(fā),可以程序化求解土石方調(diào)運(yùn)問題的Dynamo節(jié)點(diǎn)完整連接,如圖8所示。

      圖8 完整節(jié)點(diǎn)連接

      4 算例分析

      4.1 建模與求解

      以某項(xiàng)目土石方工程為例,原始地形、填挖區(qū)域標(biāo)記、土石方凈填挖量分別見圖9~11,由前述信息可知,本例中有:4塊凈挖方區(qū),分別標(biāo)記為W1,W2,W3,W4;3塊凈填方區(qū),分別標(biāo)記為T1,T2,T3。為直觀清晰表達(dá)土石方調(diào)運(yùn)數(shù)據(jù),各個(gè)分區(qū)填挖量?jī)糁导跋鄬?duì)運(yùn)距詳見表1。由表中右下角數(shù)據(jù)可知,總挖方量為81284 m3,總填方量為71595 m3,總挖方>總填方,屬于產(chǎn)大于銷的運(yùn)輸問題,應(yīng)按照產(chǎn)大于銷的約束情況建立線性規(guī)劃模型。

      表1 土石方調(diào)運(yùn)數(shù)據(jù)

      圖9 地形表面創(chuàng)建

      圖10 地形表面劃分

      圖11 地形明細(xì)表

      由于求解類庫中定義的solvedmodel類封裝了三個(gè)方法PeuqalS,PlargerS,SlargerP;分別對(duì)應(yīng)產(chǎn)銷平衡問題求解、產(chǎn)大于銷問題求解、產(chǎn)小于銷問題求解,所以在總挖方>總填方(產(chǎn)>銷)的情況下,需在Dynamo的“Python Script”節(jié)點(diǎn)中調(diào)用PlargerS方法求解本例的數(shù)學(xué)模型,當(dāng)處理好的輸入?yún)?shù)連接到求解節(jié)點(diǎn)后即可進(jìn)行模型求解,節(jié)點(diǎn)運(yùn)算結(jié)果見圖12,整理后結(jié)果見表2。

      表2 土石方調(diào)運(yùn)求解結(jié)果

      圖12 節(jié)點(diǎn)運(yùn)算結(jié)果

      4.2 結(jié)果分析

      由表1,2中數(shù)據(jù)可以看出,與挖方區(qū)W1距離最近的填方區(qū)是T1,W1需要就近向T1調(diào)運(yùn)29764 m3土石方,因W1可調(diào)用土石方已用完,所以挖方區(qū)W1不再向填方區(qū)T2,T3調(diào)運(yùn)土石方;與挖方區(qū)W3距離最近的填方區(qū)是T3,W3可調(diào)用土石方只有3063 m3不滿足T3需求方量20045 m3,所以W3全部土石方運(yùn)往T3后還需向距離T3第二近的挖方區(qū)W4借土16982 m3;與填方區(qū)T2距離最近的挖方區(qū)是W4,W4向T3運(yùn)土后余量為7188 m3全部運(yùn)往T2,此時(shí)T2還有需求量未滿足,故向距離T2第二近的挖方區(qū)W2借土3100 m3,至此 T2,T3的需求方量都已滿足,W1,W3,W4可調(diào)運(yùn)土石方已用完,因此挖方區(qū)W2需要往填方區(qū)T1調(diào)運(yùn)11498 m3土石方來滿足填方區(qū)T1總需求方量41262 m3。 為直觀表示調(diào)運(yùn)方案,詳情如圖13所示。

      圖13 土石方調(diào)運(yùn)方案圖示

      5 結(jié) 論

      (1)隨著BIM技術(shù)的發(fā)展與成熟,用程序化方法進(jìn)行土方平衡決策已經(jīng)成為可能,本文通過技術(shù)論證和編程實(shí)踐證明了其可行性、便捷性和準(zhǔn)確性,取得了不錯(cuò)的應(yīng)用效果,對(duì)類似工程項(xiàng)目具有一定的參考價(jià)值。

      (2)BIM技術(shù)應(yīng)用于工程實(shí)踐,已經(jīng)越來越偏重于信息(Information)的獲取、管理、分析、計(jì)算,而不止局限于建筑模型的(Building Model)應(yīng)用,所以編程思維將極大地提高信息的利用效率,Revit與Dynamo的有機(jī)結(jié)合還有很多值得思考探索的空間與價(jià)值。

      (3)本文只考慮了運(yùn)距對(duì)調(diào)配方案的影響,而沒有考慮到如運(yùn)輸路線、施工順序等對(duì)該數(shù)學(xué)模型價(jià)值系數(shù)的影響,這些都有待進(jìn)一步深入研究。本文初步實(shí)現(xiàn)了利用IronPython 腳本調(diào)用C#動(dòng)態(tài)連接庫求解運(yùn)籌學(xué)模型,說明其他工程類計(jì)算也可以尋求程序化解決方案,以期創(chuàng)造更高效、便捷的求解方式。

      猜你喜歡
      類庫明細(xì)表挖方
      山區(qū)高速公路挖方路基邊坡穩(wěn)定性分析及動(dòng)態(tài)設(shè)計(jì)研究
      2019年中國(guó)出口石材明細(xì)表(三)
      石材(2020年8期)2020-10-28 07:53:18
      2019年中國(guó)出口石材明細(xì)表(二)
      石材(2020年7期)2020-08-24 08:28:08
      2019年中國(guó)出口量值石材明細(xì)表(一)
      石材(2020年6期)2020-08-24 08:27:08
      用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
      Python在數(shù)據(jù)可視化中的應(yīng)用
      數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
      軟件工程(2017年12期)2018-01-29 17:35:55
      數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計(jì)與實(shí)現(xiàn)
      芻議公路工程水泥路面施工技術(shù)
      淺析建筑施工中的挖方和土方轉(zhuǎn)運(yùn)
      方城县| 肥西县| 鄢陵县| 定远县| 扎兰屯市| 遵义县| 三台县| 嫩江县| 怀柔区| 扶绥县| 云霄县| 米脂县| 青田县| 济源市| 陆丰市| 淮南市| 华阴市| 苍溪县| 孝感市| 蛟河市| 宁远县| 湖北省| 甘孜县| 微博| 潞城市| 灌云县| 乐陵市| 宁陵县| 奉节县| 丽江市| 通渭县| 凤冈县| 东乌珠穆沁旗| 成都市| 桂林市| 西和县| 长子县| 岱山县| 奉化市| 荥阳市| 沙河市|