龔 健,包騰飛,陳知淵,虞 鴻
(1.河海大學水利水電學院,江蘇 南京 210098; 2.浙江省水利水電勘測設計院,浙江 杭州 310000)
隨著我國城鎮化進程的加快,城鎮人口密度增大,供水壓力也同步增大,但飲用水質量不達標、水污染嚴重等水安全事故頻發。為保障人民用水安全,各地紛紛采用了備用水源地的方案以期形成“雙源供水”,建設了大量長距離、大流量輸水工程[1]。為保證地面交通不間斷并減小對周邊環境的影響,城市管線施工越來越多地采用盾構機(TBM)開挖隧洞、洞內布置輸水管道的施工方式[2]。作為傳統輸水管材,鋼管具有供水性能好、自重輕、后期維護方便、耐久性好等優點,廣泛應用于供水工程[3]。輸水隧洞軸線一般是曲率復雜的空間曲線,整個地下管道工程由大量的短直鋼管沿著隧洞軸線拼接而成。為使管道成型軸線能較好地擬合輸水隧洞軸線,每一根鋼管的管長、坡口角度、切口位置、排布順序等參數都必須根據空間軸線經過大量運算獲得,這涉及空間坐標系的相互轉化和齊次-非齊次方程的求解,實現難度較大。現階段關于管道的研究集中于管道管徑、材料選擇、切割焊接工序等方面,現有管道分段鋪設方式無法根據隧洞軸線的曲率變化自適應調整分段鋼管的管長[4-7]。此外,由于地下隧洞一般空間有限,大型施工機械無法運送進入,故大口徑鋼管拼接施工操作難度較高,在安裝過程中只可進行修口、清根和焊接等簡單操作,很難實現鋼管方向反轉、重新切割等操作。因此,鋼管的切割參數一旦求解錯誤,輕則導致鋼管無法拼接,重則導致拼接后因縫隙較大發生漏水、塌方等工程事故。隧洞施工常常因TBM推進姿態控制不到位等原因調整設計線路,即必須重新進行分段排布計算。然而,現有的分段排布模擬軟件都是將隧洞軸線分別投影到水平面和豎直面上,逐段按平面參數和豎向參數輸入整條軸線的數據,工作量大,修改煩瑣,且軟件輸出結果為數據表格,難以可視化評價拼接效果。為此需要研究更加高效和可視化強的供水鋼管分段排布方法,以期達到良好的管道安裝施工效果。
近年來,建筑信息模型(BIM)技術因強大的信息化、可視化以及參數化設計等功能發展迅速,在土建行業得到廣泛應用[8-10]。BIM以三維模型為載體,集成了項目生命周期內的全部信息,涵蓋了設計、施工、運維的全過程[11-12]。地下輸水工程施工風險大、安全隱患多、建設過程不可逆、工程質量問題修復難度大,需要進行嚴格的檢測控制施工過程,因此BIM可視化技術使這類無法直接觀察的地下工程得到了更有效的設計和管理,大幅提高了設計人員對于鋼管分段及楔形量合理性的判斷和分析能力。此外,由于輸水隧洞軸線在空間上呈現出長帶狀分布的特點,其建模過程較難,且每一段鋼管模型的長度及切口位置等參數的確定均需要進行大量的運算,建模效率較低且精度不高。目前在設計階段利用BIM技術進行正向設計尚處于探索階段[13]。為此,本文將BIM技術引入到地下復雜空間曲線鋼管分段排布過程中,研究高效建立高精度BIM模型的方法,利用BIM技術實現鋼管的自動分段和自動排布,以指導鋼管的設計和安裝。
目前BIM有多個平臺,其中主流平臺有Autodesk、Bentley和 Dassault,它們可以對建筑和基礎設施系統實現可視化設計、記錄和管理,還集成了附加組件[14]。在土木和建筑工程中,Autodesk平臺以開發難度較低及相對經濟等優點成為最流行的BIM設計平臺。因此,本文選用Autodesk平臺的Revit軟件作為開發平臺。
根據鋼管制造的限制條件和安裝的精度要求,需要對鋼管的分段方式進行優化,以期達到切割余料少、軸線誤差小的設計目標。而BIM的一大技術特點正是優化性,即能在BIM模型中進行設計和施工方案的優化[15]。然而,Revit對基于空間曲線的模型支持較弱且不支持批量的數據處理,很難約束模型的幾何尺寸和空間位置,更無法創建和處理鋼管分段、排布過程中復雜的幾何約束條件和邏輯關系[16-18]。因此,為提高建模速度和質量以及實現鋼管分段方式的最優化,對地下復雜空間曲線鋼管模型的創建及數據處理需要結合Revit的二次開發插件Dynamo進行。
Dynamo是一個開源的可視化編程工具,通過和Revit直接連接獲取信息。它內置了很多節點,通過將內置節點連接在一起來構建定制算法。Dynamo還可以使用Python程序以腳本編程方式擴展現有的模型,既能實時觀察幾何體的形體變化并快速建立符合設計構思的幾何體型,又可解決數據處理、邏輯判斷、循環嵌套等復雜問題[19],極大地提升了Revit在參數化、精細化建模領域的發展空間。針對地下復雜空間曲線鋼管分段安裝工程的特點,本文在Dynamo工作空間中進行設計建模,主要通過Python程序驅動Dynamo和Revit模塊進行二次開發,使得設計人員快速獲取高精度的最優鋼管分段排布設計方案,并且通過集成各種信息的鋼管分段排布BIM模型直觀嚴格地把控設計參數的合理性,以提高鋼管排布的效率和精度。
目前對鋼管分段排布的研究很少,且大多局限于二維空間[20-21],涉及復雜的矩陣計算,如坐標系的齊次變換和三維形體方程求解,無法獲取切割余料少、軸線誤差小的最優分段排布方案。為此,本文將鋼管模型進行抽象化,提取關鍵設計參數,在Dynamo中利用各鋼管模型間的關系以及設計參數、約束條件進行旋轉、平移等幾何運算,在避免復雜煩瑣的幾何代數計算的同時自動實現全局優化且高精度的鋼管分段排布。
地下隧洞的施工空間比較狹小,大直徑輸水鋼管一般采用廠家預制的方式,即需要在正向設計階段確定各鋼管的管長、坡口角度、切口位置、排布順序等,所以沒有必要對所有鋼管使用相同的坐標系來確定坡口角度和切口位置,否則會大大增加設計的計算量且降低程序的運行效率。如圖1所示,在切割時只需保證每根鋼管兩端的切口相對位置不變,即保證同一根鋼管兩端處于同一局部空間坐標系X1Y1Z1即可,同時標記坡口起切點的位置;在排布安裝時,只需將相鄰兩管對接坡口處的標記對齊即可完成拼接,極大程度提高了拼裝效率。為在鋼管某一端形成特定形式的坡口,需要將鋼管的一端進行切割,即在端環面尋找某個點,再從該點向內切割一定的角度,將該點定義為該鋼管該端環面的起切點。在廠家預制切割鋼管時,鋼管平放于水平面上,局部空間坐標系X1Y1Z1以豎直向上為X1軸,以逆著拼裝方向且平行于中軸線的軸為Z1軸,且坐標系X1Y1Z1為右手坐標系。

圖1 鋼管簡化模型及起切點和轉角

(1)
長距離輸水管道往往長達數公里至數十公里,需要布設大量不同長度的大口徑鋼管。相鄰鋼管一般通過焊接連接成整體,而焊縫的質量高低是整個施工成敗的關鍵。鋼管接口對接時應使內管壁對齊后焊接,并且接口焊縫錯邊符合標準,即焊縫必須不超過管壁厚的20%且不大于2 mm[22]。顯然,相鄰鋼管焊接時接口處形狀必須一致。容易證明,相鄰兩管接口處的坡口角度相等時坡口形狀為兩個全等的橢圓,表明相鄰兩管在對接時坡口橢圓的長軸位于兩管中軸線的角平分線上,即坡口的最里點位于兩管中軸線所形成的凸角γ(γ≤180°)的角平分線上,見圖2。根據起切點的定義,坡口的最外點也是鋼管該端的起切點。因此,相鄰兩管交界處的坡口角度θ0(包含前管的θ2和后管的θ1)以及對應的楔形量Δd0(包含前管的Δd2和后管的Δd1)的計算公式分別見式(2)、式(3)。
(2)
Δd0=2rtanθ0
(3)

圖2 相鄰兩管拼裝模型及對接坡口示意圖
一根大直徑鋼管主要由若干塊鋼板卷制壓頭制作而成[23],相鄰鋼板則通過焊接連接在一起。假設每塊鋼板的長寬均相同,為充分利用每塊鋼板、減少余料,限制每根大直徑鋼管的長度只能是每塊鋼板長度的整數倍,將每塊鋼板長度定義為鋼管長度模數Δa,并且每根鋼管的兩端坡口長度不超過一個限定值,將其定義為切割閾值Δd,如式(4)所示。為使管道沿著設計軸線布設并防止因鋼管偏離設計軸線過多而出現鋼管超出盾構隧洞的情況,每根鋼管的中軸線偏離設計軸線的距離應該限制在某個值之內,將該值定義為軸線偏差閾值dsup,則鋼管中軸線偏離設計軸線最大距離dmax應滿足式(5)的約束。
(4)
dmax≤dsup
(5)
鋼管排布時還要遵循以下原則:在空間曲線曲率較小時應排布較長的鋼管以減少鋼管數量,從而減少焊縫數量、改善輸水條件和降低漏水風險;而在曲率較大時應排布較短的多根鋼管以更好地擬合空間曲線。當空間曲線的曲率增大到某個值時,Δa管長的鋼管與設計軸線的偏差無法控制在dsup之內,此時可以忽略切割閾值的要求,從Δa依次向下搜索偏差值不超過dsup的管長。以上原則表明鋼管全長的取值應滿足式(6)的要求。
a∈{0,Δa,2Δa,…,iΔa} (i=1,2,…,imax)
(6)
式中:i為可卷制焊接成鋼管的鋼板數量;imax為允許焊接的最長鋼管所需的鋼板數量。如果管長接近0時也無法滿足偏差約束條件或者存在相當數量管長接近0但滿足偏差約束條件的鋼管時,設計人員應該考慮這段空間曲線是否存在偏折、曲率過大或者選定的鋼管分段設計參數是否合理等問題,并重新設計該段空間曲線或鋼管分段參數。
隧道軸線是鋼管分段排布設計的依據,其CAD圖可以直接導入Revit,通過Dynamo讀取將隧道軸線長度作為輸入參數t。令鋼管分段排布設計過程中相鄰兩管前管的中軸線長為d1,后管的中軸線長為d2,鋼管最大允許長度為amax,前管中軸線前端端點為n1,前管中軸線末端及后管中軸線前端端點為n2,后管中軸線末端端點為n3,前管中軸線方向(前端指向末端)為V,前管中軸線方向(末端指向前端)為V1,后管中軸線方向(前端指向末端)為V2。根據鋼管分段排布設計參數和原則,本文編寫了基于Dynamo的復雜空間曲線鋼管自動分段排布程序。
在程序運行過程中,上一管節計算時的輸出參數d2、n2、V2、θ2為下一管節計算時的輸入參數d1、n1、V、θ1,迭代參數δ值越小,表明精度越高,但計算效率也越低。該程序主要包含管長計算模塊、偏差計算模塊和轉角計算模塊這3個關鍵模塊。為彌補Dynamo中默認編程語言DesignScript在邏輯判斷、循環嵌套等復雜程序方面的不足,在PythonScript中分別調用Dynamo中幾何運算命令計算鋼管坡口切角和長度、鋼管軸線與空間曲線的最大偏差以及鋼管兩端坡口起切點相對位置。
管長計算模塊計算流程如下:①根據分段排布設計前是否已存在拼接鋼管來設定模塊參數,若不存在已拼接鋼管,參數設定為t、d1、d2、θ1、r;若存在已拼接鋼管,則參數除t、d1、d2、θ1、r外,還包括V、n1。②不存在已拼接鋼管時,首先使用Curve.StartPoint節點命令獲取空間曲線的起點,將其作為n1,再通過Sphere.ByCenterPointRadius節點命令以n1為球心、d1為半徑作球S1,最后利用Geometry.Intersect節點命令獲取S1和t的交線,將該交線沿拼裝方向的末端點作為n2;當存在已拼接鋼管時,使用Geometry.Translate節點命令將n1沿V方向平移d1得到n2。③兩種情況均以n2為球心、d2為半徑作球S2,獲取S2和t的交線,將拼裝方向的末端點作為n3;然后連接n1、n2和n2、n3,再通過Vector.ByTwoPoints節點命令獲取向量V1、V2。④最后調用Vector.AngleWithVector節點命令計算V1、V2的夾角γ以獲取前管的切角θ2(即后管的θ1),如式(2)所示。這樣按式(3)即可分別計算前管兩端的楔形量Δd1和Δd2,按式(1)即可計算前管切割前的長度,即所需的鋼管總長a。

轉角計算模塊計算流程如下:①如果V1和V2平行,則前管后端和后管前端的轉角均設為0,即α2=α1=0,否則需要通過幾何計算獲得管道的轉角。②使用Point.Add節點命令將n2分別沿V1、V2平移單位距離得到2個點,并通過Point.ByCoordinates節點命令獲取這兩點間中點n4,將n2指向n4的向量記為V3,其方向由n2指向坡口最里點。③使用Plane.ByOriginNormal節點命令分別以n2為原點、V1和V2為法向量建立平面p1和p2,通過Plane.ToCoordinateSystem節點命令分別建立這2個平面的局部空間直角坐標系xyz。④使用Curve.Project節點命令將V3分別投影到平面p1和p2上,通過Vector.AngleAboutAxis節點命令分別計算這2個投影向量與p1和p2上局部坐標系xyz中x軸間的夾角,即為前管后端和后管前端的轉角α2和α1。
鋼管自動分段排布程序通過Python調用Excel的應用程序編程接口實現了將分段排布結果自動輸出到Excel表格的功能,不僅避免了人工整理數據容易犯錯且效率低的問題,還實現了設計全過程自動化。設計人員還可以根據工程實際鋪設方向調整程序中鋼管分段安裝方向以及從已排鋼管處重新開始分段排布設計,提高了工程適用性。
為方便設計人員直觀地檢驗鋼管分段排布結果的合理性和準確性,開發了鋼管排布模擬模塊,可以根據Excel中的分段成果自動生成鋼管拼裝的三維模型。該模塊所需要的參數主要有:所有管段的前、后端中軸線端點n1、n2,前、后端切角θ1、θ2,前、后端轉角α1、α2,內外半徑rin、r,安裝管段數N,具體步驟如下:
步驟1輸入計算參數,并令i=1。
步驟2獲得第i根鋼管的n1i、n2i、θ1i、θ2i、α1i、α2i。
步驟3將n1i、n2i分別向中軸線外平移得到兩個點n10、n01以獲得切割余量。
步驟4使用Vector.ByTwoPoints節點命令獲取n2i指向n1i的向量V1。
步驟5使用Plane.ByOriginNormal節點命令分別以n1i、n2i為原點,V1為法向量建立平面p1、p2。
步驟6通過Circle.ByPlaneRadius節點命令在p1上繪制2個圓,半徑分別為rin、r,并使用Solid.BySweep節點命令將上述2個圓沿n10指向n01的路徑掃掠形成2個底面半徑分別為rin、r的圓柱實體s1、s2。

圖4 集成設計和施工參數信息的鋼管BIM模型示意圖
步驟7在p1、p2上分別建立2個局部坐標系xyz,并判斷各坐標軸方向是否一致,使用Geometry.Rotate節點命令圍繞V1旋轉平面,使得2個坐標系各坐標軸方向一致,且x軸指向全局坐標系的上方。
步驟8將p1、p2及其上的局部坐標系分別圍繞點n1i、n2i和V1旋轉α1i、α2i。
步驟9將p1、p2及其上的局部坐標系分別圍繞點n1i、n2i和各自的y軸旋轉θ1i、θ2i。
步驟10將s1、s2分別和p1、p2相交,并對4個相交體分別取外輪廓得到4條橢圓線C1、C2、C3、C4,分別對應前端外輪廓線、前端內輪廓線、后端外輪廓線、后端內輪廓線。
步驟11將C1和C3、C2和C4分別放樣形成實體,并對兩實體進行布爾減運算即可得到第i根鋼管模型。
步驟12令i=i+1,重復以上步驟直到i=N就可得到拼裝完成的鋼管模型。根據鋼管安裝模擬模塊獲得的前管后端坡面和后管前端坡面所在的平面是否相同即可在Dynamo中直觀地檢驗鋼管分段排布結果的合理性和準確性,如圖3所示。

圖3 鋼管分段排布結果檢驗示意圖
為充分發揮BIM模型在設計和施工階段的優越性,對拼裝完成的三維管道模型集成設計和施工參數信息。由于Dynamo自帶的Revit導入節點效率較低且是以符號的形式導入,既不能快速地調整構件屬性,又不能進行修改與編輯,更難以添加工程管理所需的新屬性。因此在Dynamo中,首先利用第三方節點包Springs將各段鋼管轉化為常規模型族,并將其導入Revit中,然后使用Parameter.CreateProjectParameter節點命令給Revit的常規模型創建一系列項目參數,如里程樁號、軸線偏差、鋼管長度等,再通過Excel.ReadFromFile節點命令與Excel進行交互以讀取輸出參數,最后通過Element.SetParameterByName節點命令對各段管片模型的各個項目參數賦予參數值。集成參數信息的三維模型更適合指導鋼管的安裝和設計的工作,見圖4。
杭州市城北和余杭地區的供水水源以苕溪為主,水源單一且水源水質易受上游影響。保障飲用水供水安全和改善供水水質,政府確定實施杭州市第二水源千島湖配水工程。
以杭州市第二水源工程中大毛塢—仁和大道供水管道工程中的一段設計曲線為例,驗證基于BIM技術的地下復雜空間曲線鋼管分段排布算法的有效性和優越性。該段盾構隧洞開挖直徑6.2 m,襯后內徑5.5 m,輸水建筑物采用盾構隧洞內置鋼管結構,在盾構隧洞內設置鋼管。設計要求Δd=0.05 m,dsup=0.1 m,各根鋼管總長度只能在集合{(0 m,3 m],6 m,9 m,12 m}中選取,首管前端無切口。將以上參數輸入本文建立的算法程序,得到高精度的鋼管分段排布方案,其中該段輸水隧洞設計軸線、管道中各鋼管的轉角分布、短管分布以及鋼管中軸線與隧道軸線間最大偏差分布如圖5所示。

圖5 輸水隧洞設計軸線和管道BIM模型各鋼管參數分布
生成的管道模型共計有126根大口徑鋼管,其中大多是直徑12 m的鋼管,占比78.57%,而直徑3 m及以下的鋼管只有10根,最大程度地減少了分段數目。拼裝過程開始和結束時鋼管的起切點位置分別大致分布于鋼管的正右側和正左側,符合圖5(a)中設計曲線開始段和結束段的曲線走向;圖5(c)中數字為設計軸線開始段和結束段各鋼管的總長,可以看到所有的短管均分布在曲率較大的開始段和結束段,呈現出空間曲線曲率越大短管分布越密且管長越短的特點,符合工程實際;由圖5(a)和圖5(d)可知,管道軸線均勻地分布在設計軸線周圍,而且每根管道距離設計軸線的最大偏差均小于0.1 m。綜上所述,鋼管的分段方式合理,滿足鋼管制造和安裝精度的要求。
在鋼管分段排布設計初期,設計人員可以適當放寬切割閾值和最大偏差的限制,以初步評估鋼管軸線和設計軸線間最大偏差的分布和切割余料量,如果最大偏差較小并且切割余料較少,則可將該約束條件下的高精度鋼管分段排布方案直接作為設計方案;否則,對設計參數進行修改以得到指定約束條件下的全局最優鋼管排布方案。假定在設計初期對該段設計軸線的鋼管分段排布要求為切割閾值0.5 m、偏差閾值1 m,則各分段鋼管的中軸線長、切角及鋼管中軸線與隧道軸線間最大偏差情況如圖6所示。

圖6 設計階段初期管道BIM模型各鋼管試算參數分布
圖6(a)表明在約束條件放寬的情況下,管道分段模型中鋼管的最小中軸線長為11.922 m,最大切角為1.33°,每一段鋼管的全長均為12 m;圖6(b)表明鋼管中軸線和隧道軸線的最大偏差為0.13 m。與圖5所示的方案相比,最短管由0.575 m(圖5(b))變為11.922 m,避免了超短鋼管的存在,提高了結構穩定性。根據鋼管中軸線與隧道軸線的最大偏差,以上兩種設計方案可以開挖成相同洞徑的輸水隧洞,但是圖6的方案減少了鋼管的分段數、分段類型和焊縫數量,提高了結構和輸水系統的穩定性,因此可以作為嚴格約束條件下的替代方案。由此可以看出,本算法程序對于鋼管分段約束條件的優化、鋼管分段排布方案的比選具有較大的應用價值。
本文充分利用BIM技術在正向參數化設計中的優勢,研究了基于Revit和Dynamo的地下復雜空間曲線鋼管分段排布算法,開發了相應的模擬程序,不僅實現了鋼管的自動合理分段和自動安裝模擬,提高了建模效率與模型精度,還將三維模型與設計和施工參數相結合,使得設計、施工和管理人員均可以直接在BIM模型上查詢各鋼管的編號、里程等參數信息,實現了參數微調與圖元變化聯動,所見即所得,為管道工程后續的信息化監測管理奠定了基礎。本文提出的算法和開發的軟件已成功應用于杭州市第二水源工程、嘉興市域外配水工程等工程,為工程設計、施工和鋼管制作單位提供了技術支持。