互通立交預制梁橋布置程序腳本的開發(fā)_第1頁
互通立交預制梁橋布置程序腳本的開發(fā)_第2頁
互通立交預制梁橋布置程序腳本的開發(fā)_第3頁
互通立交預制梁橋布置程序腳本的開發(fā)_第4頁
互通立交預制梁橋布置程序腳本的開發(fā)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

互通立交預制梁橋布置程序腳本的開發(fā)

1復雜形態(tài)模型創(chuàng)建在建筑結構設計和施工領域,pmi(建筑信息模型)的概念深深扎根于人們的心中。AutodeskRevit(以下簡稱Revit)是目前國內(nèi)在設計及施工領域方面應用最廣泛的一款BIM建模軟件。建立參數(shù)化的模型是Revit的核心;當通過Revit創(chuàng)建好一個模型之后,與該模型相對應的各類型圖紙(平、立、剖)及構件明細表隨之產(chǎn)生。也就是說對于一個已建好的參數(shù)化模型,與其相關聯(lián)的所有圖紙、視圖及明細表都是基于同一個模型數(shù)據(jù)庫的數(shù)據(jù)外在表現(xiàn)形式。當模型某元素發(fā)生改變時,在Revit項目中該元素關聯(lián)的其他元素將會隨之發(fā)生同步變化,這是BIM相對于傳統(tǒng)設計方法的主要優(yōu)勢之一,每個數(shù)據(jù)元素均具有關聯(lián)性。同時隨著BIM技術的不斷完善和發(fā)展,在正向設計領域中的應用越來越廣,特別是對Dynamo技術的應用,表現(xiàn)的尤為突出。另外,BIM技術不同于傳統(tǒng)設計方法的另一特征是對于Revit已建好的模型,可根據(jù)項目實際要求添加關于模型及其構件的各種信息,包括但不限于模型構件的材料供應方、加工方、施工方、驗收方、監(jiān)理方、材質(zhì)的外觀、材質(zhì)的物理力學屬性(密度、彈性模量、壓縮模量、泊松比等)等信息。對于已建好的Revit模型,不僅可以實現(xiàn)整體及不同類型構件工程量的統(tǒng)計輸出外,而且還可以將該模型成果文件用于力學分析、綠色節(jié)能分析、模擬光照分析、實景漫游等。Revit在建筑行業(yè)的應用已經(jīng)擁有眾多優(yōu)異的表現(xiàn),與建模相關聯(lián)的功能模塊也主要是和建筑結構相關。與市政工程諸如道路、橋梁、隧道相關的功能模塊則少之又少,直接使用Revit來創(chuàng)建形態(tài)結構復雜的橋梁、隧道(特別是盾構及其管片配筋)是非常困難的。為解決Revit在創(chuàng)建復雜形態(tài)模型時的缺陷,本文以Revit內(nèi)置插件Dynamo作為程序主要開發(fā)工具,結合Revit,Civil3D,Excel開發(fā)了T梁橋主體結構、下部結構及橋面系布置程序。數(shù)據(jù)獲取及分類處理如圖1所示。另外所有的圖形處理、程序設計和編輯均是基于一定數(shù)量的基礎數(shù)據(jù)(點數(shù)據(jù)),基礎數(shù)據(jù)處理的是否恰當,直接影響最終模型的顯示效果和精度。由于Revit有圖形界限的限制,從Civil3D中導出的點數(shù)據(jù)直接應用于Dynamo中,會造成圖形無法正確顯示的問題。所以在將原始點數(shù)據(jù)導入Dynamo之前,需進行處理———采用相對坐標。這種處理方式既保證了圖形的正常顯示,又保證了建模精度。圖1所示將原始坐標點數(shù)據(jù)轉(zhuǎn)變?yōu)橄鄬ψ鴺说木唧w步驟為:修改Revit項目基點(系統(tǒng)默認狀態(tài)為0,0,0,結合工程項目實際情況,將其設定為340000,287300,0),隨后基于該基點對原坐標值進行轉(zhuǎn)換,結果如圖1中“變更坐標”所示。2使用原理和節(jié)點開發(fā)2.1dynamo簡介Dynamo可視化編程的主要特點是程序編輯過程中可隨時查看編輯成果,程序編輯與結果輸出相同步。同時該種類型的編程有別于傳統(tǒng)編程,傳統(tǒng)編程是基于過程的,Dynamo可視化編程是基于對象的。下面通過一個范例來說明兩種編程思想的區(qū)別。通過圓心和半徑做圓,常規(guī)的程序源代碼如下:通過可視化編程創(chuàng)建圓的過程如圖2所示。以上2種方法均可以創(chuàng)建圓形,很明顯采用Dynamo可視化編程去創(chuàng)建圖形更加直觀和便捷。2.2數(shù)據(jù)連綴方式在模型創(chuàng)建過程中,Dynamo通過內(nèi)置的不同類型節(jié)點將各種類型數(shù)據(jù)列表以某種邏輯關系進行相互連接來解決相關模型創(chuàng)建問題。不同節(jié)點之間的數(shù)據(jù)列表運算是基于某種類型的數(shù)據(jù)連綴方式,數(shù)據(jù)連綴方式共分為三種類型:最短類型、最長類型和叉積類型。最短類型:兩個相對應的數(shù)據(jù)列表內(nèi)部元素一一對應相互連接,直至某一數(shù)據(jù)列表最后元素相連接;最長類型:一組數(shù)據(jù)列表內(nèi)部數(shù)據(jù)元素一直連接到另一數(shù)據(jù)列表沒有相對應的數(shù)據(jù)元素為止;叉積類型:每組數(shù)據(jù)列表中的每一個數(shù)據(jù)元素均與另一組數(shù)據(jù)列表中的所有數(shù)據(jù)元素相互連接。處于不同連綴狀態(tài)下的數(shù)據(jù)列表運算結果是不同的?,F(xiàn)結合圖3~圖5來說明列表數(shù)據(jù)運算中的三種不同連綴狀態(tài)。2.3節(jié)點開發(fā)和節(jié)點包生產(chǎn)在dynamo中2.3.1節(jié)點的創(chuàng)建過程由于Dynamo內(nèi)置節(jié)點類型畢竟有限,功能隨之也受到限制,不可能涉及到任意類型的工程項目BIM模型創(chuàng)建。特別是在創(chuàng)建復雜的空間結構體BIM模型時,除了應用內(nèi)置節(jié)點類型外,還需依據(jù)工程的實際特點開發(fā)相應的功能型、創(chuàng)建型節(jié)點,以滿足復雜空間結構體模型的創(chuàng)建及建模精度等要求。在創(chuàng)建不同類型節(jié)點的過程中,節(jié)點開發(fā)均是基于C#(.net)程序語言。通過使用Dynamo導入動態(tài)鏈接庫文件(.dll),該DLL類型文件中的類名及靜態(tài)方法名共同構成節(jié)點的名稱。DLL文件導入后Dynamo會初始化該文件并生成相應的功能性節(jié)點。下述分別以“Geometry.MyPoint”“VectorViewer”(向量觀察節(jié)點包)、“Point.Bycoordinates”(幾何空間點創(chuàng)建節(jié)點)為例,講述節(jié)點的創(chuàng)建過程及節(jié)點包、節(jié)點的組成結構(見圖6,圖7)。創(chuàng)建Geometry.MyPoint功能性節(jié)點的核心源代碼如下所示:(1)節(jié)點的名稱;(2)節(jié)點的輸入項;(3)節(jié)點的輸出項;(4)節(jié)點數(shù)據(jù)的連綴狀態(tài),不同的連綴狀態(tài)會影響節(jié)點進行列表運算的結果;(5)節(jié)點的主體,在此點擊鼠標的右鍵可以對節(jié)點的連綴狀態(tài)、顯示預覽、預覽上游等進行相關設置。圖8,圖9所示方法是基于文本數(shù)據(jù)流加Dynamo可視化編程數(shù)據(jù)流的方式來開發(fā)相應功能性節(jié)點。PythonScript是Dynamo的內(nèi)置節(jié)點,在節(jié)點的創(chuàng)建過程中可以增加多個輸入端口,但輸出端口只有一個(Output),雙擊該節(jié)點可以進入相應的代碼編輯界面,所有的代碼編輯均是基于Python這種類型的計算機語言,代碼編輯界面如圖9所示。通過PythonScript或是CodeBlock節(jié)點,可實現(xiàn)可視化數(shù)據(jù)流編程(Dynamo)和文本數(shù)據(jù)流編程(Python)相互之間的轉(zhuǎn)化。將參數(shù)化設計和計算機算法有機的聯(lián)系在一起。2.3.2環(huán)縫節(jié)點創(chuàng)建項目建模過程中,為實現(xiàn)某一特定的功能,將若干個內(nèi)置的不同類型節(jié)點連接并打包,形成自定義節(jié)點包,以便在項目中可以被重復調(diào)用,無需再次連接相同的節(jié)點。自定義節(jié)點的結構組成具體以創(chuàng)建盾構管環(huán)的環(huán)縫節(jié)點為例來進行說明,具體如圖10所示。上述自定義節(jié)點包含有多個輸入端口、一個輸出端口,接口一般是由CodeBlock來實現(xiàn)。如圖10所示,輸入端口是由CodeBlock實現(xiàn),輸出端口為Output默認輸出端口。創(chuàng)建好自定義節(jié)點包的輸入及輸出端口后,用鼠標框選各連接節(jié)點,在菜單欄(Ribbon)中點擊“編輯”選項,從下拉列表中選擇“從所選項創(chuàng)建節(jié)點”,在隨后彈出的對話框中添加相應的自定義節(jié)點包名稱及所屬類別即可實現(xiàn)自定義節(jié)點包的創(chuàng)建。自定義節(jié)點創(chuàng)建完成并發(fā)布后,可在類別模塊中選取相應節(jié)點。3上部結構及梁體特點本節(jié)內(nèi)容以某公路互通匝道橋為例,該匝道橋梁中心線位于曲率半徑為2800m的圓曲線上,上部結構為預應力混凝土結構,梁體類型為T梁,單片梁體寬度為2.4m,高度為1.2m,梁跨徑組合為(28+28+28+30+25+28)m。同時本節(jié)內(nèi)容主要就參數(shù)化T梁族的制作思路進行介紹,至于在族制作過程中如何添加約束、如何建立參數(shù)關系等在此不進行詳細描述。3.1模型族參數(shù)化t參數(shù)化T梁族制作思路:將梁體構造圖紙進行拆分(T梁拆分為橋面板、肋板、加腋結構、橫隔板)—分析梁體結構組成,結構變化處分開建?!_立建模標準(主要包含內(nèi)容為定位標準、材質(zhì)標準)—選取自適應公制常規(guī)模型族樣板—確定模型創(chuàng)建原點—根據(jù)各組成部分所處位置添加參照平面—添加尺寸約束—添加類型、實例參數(shù)及參數(shù)表達式(主要用于梁體橫坡、內(nèi)外邊梁翼緣板線形調(diào)整等)—繪制截面輪廓(采用參照線繪制,并將參照線與參照平面進行鎖定)—創(chuàng)建形狀,形成參數(shù)化T梁族。所建族實例及參數(shù)化設置分別如圖11,圖12所示。3.2參數(shù)化橋墩族構建參數(shù)化橋墩族制作思路:將橋墩構造圖紙進行拆分(橋墩拆分為墊石、蓋梁、墩柱、系梁、承臺、樁基)—選取公制結構基礎族樣板—確定模型創(chuàng)建原點(選取對稱中心所在位置)—根據(jù)各結構組成部分所處位置添加參照平面—添加尺寸約束—添加類型、實例參數(shù)及參數(shù)表達式(主要用于蓋梁坡度調(diào)整)—分別繪制各組成部分的截面輪廓(將輪廓線與各參照平面進行鎖定)—采用拉伸命令創(chuàng)建實體,最后通過連接命令形成整體參數(shù)化橋墩族。所建族實例如圖13所示。3.3橋臺族參數(shù)化方法參數(shù)化橋臺族制作思路:將橋臺構造圖紙進行拆分(橋臺拆分為耳墻、臺帽、臺背、牛腿、倒棱、擋塊、墊石、樁基)—分析橋臺結構組成—選取公制結構基礎族樣板—確定模型創(chuàng)建原點(選取對稱中心所在位置)—根據(jù)各組成部分所處位置添加參照平面—添加尺寸約束—添加類型、實例參數(shù)及參數(shù)表達式(主要用于臺帽、臺背橫坡調(diào)整)—繪制各截面輪廓(將輪廓與參照平面進行鎖定)—創(chuàng)建實體,最后通過融合命令形成參數(shù)化橋臺族。所建參數(shù)化族實例如圖14所示。4數(shù)據(jù)處理平臺設計在進行程序開發(fā)之前,需將項目實體各項信息統(tǒng)計于Excel表中(Excel是基于Microsoft平臺,采用其他平臺的Excel軟件會造成數(shù)據(jù)無法讀取的情況發(fā)生),諸如橋墩信息、橋臺信息、步跨信息、T梁預制橫坡等,方便后期Dynamo進行數(shù)據(jù)處理,將相應實體布置在實際位置上。另外本節(jié)內(nèi)容主要介紹創(chuàng)建不同結構模塊主要程序節(jié)點構成,至于模塊與模塊之間及對應程序各主要節(jié)點之間如何銜接在此不做說明。4.1線路組成結構1)線路生成程序主要節(jié)點組成。程序基本設計流程:讀取Excel數(shù)據(jù)—數(shù)據(jù)處理—應用List.GetItemAtIndex節(jié)點過濾所需數(shù)據(jù)—采用Point.ByCoordinates節(jié)點生成空間點—應用NurbsCurve.ByPoints節(jié)點將點連接生成線—采用PolyCurve.ByJoinedCurves節(jié)點將三維空間線類型轉(zhuǎn)換為PolyCurve類型。2)線路校核程序主要節(jié)點組成。程序基本設計流程:讀取Excel數(shù)據(jù)—數(shù)據(jù)處理—應用List.GetItemAtIndex節(jié)點過濾所需數(shù)據(jù)—采用Point.ByCoordinates節(jié)點生成空間點—應用NurbsCurve.ByPoints節(jié)點將點連接生成線—采用PolyCurve.ByJoinedCurves節(jié)點將三維空間線類型轉(zhuǎn)換為PolyCurve類型—應用Curve.Length節(jié)點獲取投影曲線長度—按照樁號計算投影曲線長度并與上一步所測曲線長度進行比較(做差)—通過if和Boolean節(jié)點將比較結果轉(zhuǎn)換為不同的顏色顯示。4.2維空間線poitycurves—下部結構布置程序開發(fā)程序腳本設計流程將由Civil3D生成的控制點連接成線(采用NurbsCurve.ByControlPoints節(jié)點將空間點連接形成三維空間線)—通過PolyCurve.ByJoinedCurves節(jié)點將上步生成的三維空間線轉(zhuǎn)換成PolyCurve類型—將轉(zhuǎn)換后的三維空間曲線投影至二維平面上(為XY平面)—按照跨徑在曲線上獲取相應位置上的點—放置下部結構族—調(diào)整下部結構族偏轉(zhuǎn)角度(角度由該點處的切向量與世界坐標系Y軸或是X軸的夾角),使得與實際布置情況保持一致(線路生成及校核程序未在下列列出)。4.3梁體位點編排1)建立放置梁體空間坐標系及梁體放置點位編排程序腳本設計流程。將由Civil3D生成的控制點連接成線(采用NurbsCurve.ByControlPoints節(jié)點將空間點連接形成三維空間線)—通過PolyCurve.ByJoinedCurves節(jié)點將上步生成的三維空間線轉(zhuǎn)換成PolyCurve類型—將轉(zhuǎn)換后的三維空間曲線投影至二維平面上(為XY平面)—按照梁體跨徑在投影曲線上獲取相應位置上的樁號點—將上步形成點投影至原三維曲線—以三維曲線上的點為局部坐標系原點建立梁體放置空間坐標系—根據(jù)梁體的橫向排布特征及橫坡參數(shù)建立整體橋跨梁體放置空間坐標系—利用節(jié)點List.Sublist實現(xiàn)外邊梁、中梁、內(nèi)邊梁點位編排。2)創(chuàng)建梁體程序腳本設計流程。放置梁體點位編排程序腳本如前所述,在此不再詳述。在梁體點位編排程序腳本基礎之上對所布置的各分片梁體進行命名(核心是應用生成字符串相關節(jié)點進行命名)—復制梁體類型(應用白馬包中的CopyType節(jié)點)—采用放置自適應族相關節(jié)點AdaptiveComponent.ByPoints進行梁體布置(注意相關連接節(jié)點的數(shù)據(jù)結構必須保持一致)。本實際案例中的T梁族分為“兩種類型”:a.未置入直線類型(第一階段T梁);b.置入直線類型(第二階段T梁,該種“類型”的T梁主要通過內(nèi)置直線的端點來實現(xiàn)梁體的空間布置)。3)邊梁、中梁梁體類型劃分及梁體橫坡、梁長、梁端角度調(diào)整程序腳本設計流程。繼在梁跨整體布置腳本程序的基礎之上采用Element.SetParameterByName節(jié)點對處于不同位置處的分片梁體所屬類型進行劃分(外邊梁、中梁、內(nèi)邊梁)—采用List相關節(jié)點對梁體類型列表數(shù)據(jù)進行處理—采用Element.SetParameterByName節(jié)點對不同分片梁體類型的橫坡、梁體長度、梁體梁端角度參數(shù)值進行設置。4.4生成實體的編碼與編排1)橫隔板及濕接縫定位點編排、放置族實例程序設計流程。根據(jù)自適應族樣板創(chuàng)建8點自適應族(注意編排自適應點的順序,同時在繪制圖形時采用參照線繪制)—按照一定的順序在參數(shù)化的T梁族里面置入模型線(后續(xù)程序相應節(jié)點會根據(jù)依照此線產(chǎn)生的端點按繪制順序放置自適應族,所以在繪制該類型模型線時需注意繪制的方向和順序)—采用Element.Curves獲取每片梁體中的內(nèi)置線—應用list相關節(jié)點進行數(shù)據(jù)處理,獲得放置自適應族的空間點坐標列表—采用文本數(shù)據(jù)流選取項目文件中的自適應族類型—應用CopyType節(jié)點對梁片進行命名(相關操作節(jié)點的數(shù)據(jù)結構必須保持一致)—應用AdaptiveComponent.ByPoints節(jié)點放置自適應族。另外濕接縫定位點編排腳本程序與橫隔板定位點編排腳本程序結構一致,可參照濕接縫定位點編排腳本程序進行點位編排和命名。2)放置橋面板、行車道標志線及護欄程序設計流程。通過CodeBlock文本數(shù)據(jù)流獲取項目文件中相應類型族文件—通過世界坐標系(WGS)原點放置族—采用List.Cycle節(jié)點生成對應數(shù)目的輪廓族—設置相同類型輪廓的空間偏轉(zhuǎn)角度(橋面板、行車道標志線、護欄斷面輪廓)—獲取組成各構件輪廓的曲線—采用GroupCurves節(jié)點對組成各輪廓曲線進行分組,所得每一組曲線均可獨立構成閉合曲線—將組成每個閉合輪廓的線進行聚合處理,使得多線組成一個整體的閉合輪廓線(在行車道標志線、護欄斷面、橋面板橫斷面數(shù)據(jù)處理中應用)—采用CoordinateSysterm.ByOriginVectors節(jié)點將生成的閉合輪廓由世界坐標系變換至目標空間坐標

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論