梁陽澤, 徐 照, 葛曉永, 方卓禎, 洪 敏, 金明堂
(1. 東南大學 土木工程學院,江蘇 南京 211189;2. 南京市江北新區中央商務區建設管理辦公室,江蘇 南京 210032)
裝配式建筑以資源浪費少、節能環保、質量優、建造周期短等特點成為我國建筑業轉型升級的重要方向[1]。目前我國裝配式建筑以裝配式混凝土構件為主,而PC(Precast Concrete)構件主要為預制墻板、樓板、梁、柱等,低層建筑、工業類、預應力等預制構件尚處于發展階段[2]。伴隨著裝配式建筑的發展其存在的問題也逐漸顯露,郭志偉等[3,4]認為裝配式建筑存在質量、成本管理困難等問題。這一問題隨著智慧建造、智能建造理念的提出得到了很好的解決。在裝配式建筑智能化、信息化領域的研究近年來也日益增加。李希勝等[5]將BIM(Building Information Modeling)協同設計與傳統設計進行比較,驗證了基于BIM的建筑協同設計方法的有效性。劉思佳等[6]通過BIM技術對裝配式地鐵車站進行仿真模擬,提出將BIM與裝配式建筑施工結合對于地下工程的現代化、智能化、信息化發展有深遠影響。
裝配式建筑信息化的發展也帶動了多軟件協同的需求逐漸增加,點云數據格式和IFC(Industry Foundation Classes)標準的具體映射逐漸成為研究的一大熱點方向。賴華輝等[7]分析了各軟件對IFC標準的支持情況以及數據交互不一致的問題,從軟件對IFC的解析、IFC標準完善等方面探討了IFC發展面臨的問題及發展建議。徐照等[8]提出了由原始點云數據采集到IFC數據模型的處理流程,為實現網頁可視化管理提供基礎。Krijnen等[9]將點云作為拓展屬性融入IFC標準文件中。
IFC標準和點云的結合促進了建設項目各方在統一的數據基礎上進行建設項目全生命周期的數據共享與交換,同時也提高了對點云數據處理的要求。目前在點云數據處理方面主要分為兩類:(1)針對點云特征的點云數據處理方式[10~12],通過K-鄰近點的方法對點云的特征點進行提取并以此重構曲面,這類算法雖然可以較好地保持點云模型原有的特征值,但操作過程非常復雜,不適合大批量點云數據的模型建立;(2)通過采樣簡化的方式對點云數據進行處理[13~15],這類算法操作簡單,適合數據量龐大的點云數據的處理,但處理之后一些細節化的尖銳部分或彎曲會消失,所以這類算法不適用于對模型還原物理實體要求較高的情況。當點云數據量巨大同時需要最大程度保持點云模型原有的特征值時,上述兩種點云數據處理方式并不適用。本文采用的切片掃描方式對點云數據進行處理,最大程度保留了點云模型的特征,操作過程較一般點云數據處理方法更為簡潔,預處理后數據量更少,可以實現大批量數據的處理。
本文主要針對預制構件構建單元級的物理實體,研究預制構件的幾何模型重構。通過實地調研采集多種完整的預制構件點云模型,采用等區間分割的映射方式得到平面點云;采用KNN(K-Nearest Neighbor)算法提取切片特征值,并進一步拉伸擬合建立預制構件模型,通過Revit軟件擴展模塊Mesh Import實現IFC格式轉換;通過幾何模型質量檢驗,驗證切片法在預制構件點云模型重構的應用可行性。本研究以預制構件高精度幾何模型重構為研究對象,以樓板構件為例進行研究。
本文使用IFC2*3版本,采用EXPRESS語言定義所有數據。
現有最常用的形狀表示方法可分為四類:隱式函數表示(Implicit Representation)、邊界表示(Boundary Representation,B-Rep)、構造立體(Constructive Solid Geometry,CSG)和掃描實體(Swept Solid Representation,SSR)表示[16]。隱式函數表示是基于3D圖形的數學表示,很難表述尖銳的特征(如邊和頂點),在建模預制構件時用處有限。B-Rep 對于大的被遮擋區域很難被平滑處理,不能保證一組多邊形面片可以形成一個封閉的網格模型。CSG 適用于理想化或簡化的拓撲設計,不考慮裝配式建筑的實際幾何圖形組件。以上三種形狀表達方式均不適用于預制構件幾何模型重構。
SSR通過沿三維中的特定路線掃掠完全由輪廓線包圍的二維輪廓來創建三維形狀。掃描路徑由一個軸以及對應的角度決定,二維輪廓通常是原始圖形如圓形、多邊形等。在建筑、工業環境中,目前已有對長方體或標準梁的掃描方法的研究。本文將采用SSR的表達方式對預制構件進行幾何模型重構。
在IFC2*3中共定義了653個實體類型,針對預制構件的非特化幾何表示部分,本節重點介紹IFC幾何圖形的表示原理和最重要的幾何圖形表示。根據Borrmann等[17]的研究,IFC數據模型中的所有幾何表示可以分為四類:邊界框、曲線、表面模型、實體模型。
邊界框可以使用IfcBoundingBox來表示。邊界框是高度簡化的3D對象的幾何表示,通常用作占位符。IfcBoundingBox由一個放置角點和三個邊的尺寸定義為長方體。曲線可以由IfcCurve及其子類IfcBoundedCurve,IfcLine,IfcConic來進行建模。
自由曲面和曲面是復雜幾何建模的基礎。自由形式的三維曲線在數學上被描述為參數曲線,這意味著x,y,z坐標是在公共參數下跟蹤三維曲線的函數。其次,使用表面模型來表示由子表面組成的復合表面。它們可以是曲面(如NURBS)或平面(如Mesh)。IfcBSplineSurface可用于表示曲面,如NURBS曲面。一個生成三維立體模型的經典方法是通過CSG的方式??梢允褂肐fcCsgPrimitive3D及其子類,如IfcBlock,IfcRightCircularCylinder,IfcSphere等。可以使用IfcBooleanResult執行組合操作。然而,正如前面所提到的,CSG的使用非常有限,因為圖元基本類型的使用非常有限。
SSR在IFC中被廣泛用于創建3D對象。通常,IfcSweptAreaSolid及其子類IfcExtrudedAreaSolid,IfcRevolvedAreaSolid,IfcFixedReferenceSweptAreaSolid,IfcSurfaceCurveSwptAreaSolid可用于表示實體。這個表示需要一個任意的封閉配置文件IfcArbitraryClosedProfileDef,它是IfcProfileDef最常見的子類。例如,當使用IfcExtrudedAreaSolid時,ExtrudedDirection被定義為IfcArbitraryClosed ProfileDef可以沿著該方向拉伸。當使用IfcRevolvedAreaSolid時,可以定義出方向和軸,這樣IfcArbitraryClosedProfileDef就可以圍繞軸旋轉到給定的角度。然后,IfcFixedReferenceSweptAreaSolid允許通過屬性Directrix沿著空間中的任何曲線進行延伸。也就是說,輪廓將沿著屬性FixedReference定義的特定軸拉伸。
LOD(Level of Details)用以表示模型的細致程度,如表1所示,不同LOD等級下對建筑描述詳細程度不同,本文研究中將不考慮用戶的要求定義和指定幾何模型所需的LOD。

表1 LOD詳細等級介紹[16]
LOD 200是一個較為粗糙的表示,組件被表示為具有近似幾何形狀。因此,它不能完全支持建設過程和建設后的過程。LOD 300被圖形化地表示,具備精確的數量、尺寸、形狀、位置、方向等信息,LOD 300不包含細節、制造、安裝和詳細裝配等信息,這些信息主要用于反映現有基礎設施的實際狀態。采用切片掃描重構方法生成LOD模型將大于LOD 200但不完全符合LOD 300的預制構件幾何模型,即LOD 250-300。如一個混凝土預制板以及混凝土預制墻點簇的幾何形狀是使用多個平行的切片模型來近似的。柱點簇的幾何形狀是通過拉伸其投影輪廓來表示的。對于柱以及梁點簇,與板切片拉伸的方式相似,首先確認其截面形狀,然后使用堆疊的片來表示。
本文數據采用南京市某預制構件廠的混凝土預制構件數據,通過激光掃描儀實地采集得到,共采集墻構件、樓梯等多組數據?;贗FC格式的對象擬合方法采用MATLAB和Revit軟件操作實現,采用Cloudcompare,Meshlab等軟件進行中間過程的文件格式轉換、對比檢驗模型質量等,具體流程如圖1所示。

圖1 點云數據處理流程示意
研究采集得到的點云數據首先通過CloudCompare 軟件進行格式轉化,以.ply格式儲存,并進行后續數據預處理。
KNN是現行應用廣泛的點云數據降噪抽稀方法。該方法通過給定數據集,選取其中的數據并判斷該點在距離較近的K個點中相同類型最多的點類型。并將這一類型賦予該被測點。如圖2所示即為數據處理過程。當被測點“?”周圍點數為3時(即K取值為3),由圖2a所示三角形較多,該點將被賦予與三角相同的類型定義,當“?”周圍點數為9時(即K取值為9),由圖2b所示正方形類型點數超過三角類型點數,被測點則將被賦予與正方形相同的類型定義。

圖2 KNN算法示意
通過KNN算法,對不同的K值進行確定,可以產生對應的閾值,本研究中,在裝配式墻構件點云模型中,假設取K=6,則每一個點云都將進行計算,產生一個距離閾值(通過類型進行判斷,提取出K=6情況下,不在相同類型下的點的距離最小值),超出該閾值的點則被判斷為噪點進行剔除。通過這一方法可以有效保證構件點云模型的原有幾何特征值。通過對K取值的變化,選取最為適合本研究的K值,如表2所示。

表2 不同K取值下預處理效果對比
由上表可知,當K=5時預處理達到較好效果,后續K值上升但壓縮比并無太大變化,K值大于7之后點云數量出現回升,預處理效果下降。選取K=5,點云數據預處理結果如圖3b所示,KNN算法很好地保留了點云模型的特征值。如圖3,對比圖3a,3b可知表面的噪點去除效果顯著,同時構件表面凹陷處的特征點則被很好地保留。

圖3 KNN方法處理點云模型前后對比
本研究通過SSR的表達方式對預制構件進行幾何建模,通過沿三維中的特定路線掃掠完全由輪廓線包圍的二維輪廓來創建三維形狀。圖4給出了在掃描實體表達方式下切片掃描幾何模型重構的工作流程。輸入預處理后的點云數據(板、梁、樓梯等構件)。分別輸出四種類型幾何模型的IfcObject,對應于詳細級別的LOD 250-300。該方法有如下兩個主要步驟:

圖4 切片掃描集合模型重構流程
第一步:在四種類型點簇中的幾何特征提取和形狀檢測;
第二步:IfcObject擬合提取的特征和識別的形狀。
以裝配式鋼筋混凝土樓板為例,樓板的拓撲結構取決于其水平和垂直的走向,通常情況下裝配式建筑樓板不存在斜度,也很少存在延樓板長寬方向的彎曲變形,但若簡單的將其視為矩形則無法客觀具體地反映出預制構件實物與BIM軟件正向設計原有模型的吻合程度,為了更加精確地反應預制構件實際情況,將采用多個直線段來近似擬合真實的水平,每個直線段對應一個“切片”,不同的切片連接可以最大程度地還原構件實際情況,垂直方向也是如此。選取的直線段越短,精確程度越高。這些信息可以在將來儲存于IfcAlignment實體中。
在進行切片掃描幾何模型重構過程中,假設裝配式樓板存在一個細微的弧度,采用一條曲線(一般為二階曲線)作為研究的水平線,將樓板定位在水平線的切線位置。將樓板切割成J片,切片采取平行的模式,沿切線方向拉伸。由于樓板構件表面均暴露在激光傳感器下,橋面板點簇通常包含整個橋點云的大部分掃描點。隨機選擇10%左右的點來擬合拋物線。將隨機采樣的平板點簇投影到x,y平面上,然后通過最小化平方誤差,將唯一的二次多項式擬合到投影的n個點(xi,yi)上,假設x軸是主方向[18],則有
(1)
式中:p(xi)為第k次多項式的內插值,可表示為a0,a1,…,ak的線性方程組,即
(2)
即Y=Xa。通過預先乘以X的轉置得到,即XTY=XTXa。然后,對矩陣方程的逆變換得到一個二次多項式來構造插值的p(xi)。
a=(XTX)-1XTY,n>k
(3)
通過上述運算,可以得到上文假設樓板的曲線,然后計算曲線上每個差值點的切線,通過曲線的導數得到切線的斜率(式(4)),假設曲線為f(x)=Ax2+Bx+C,A,B,C均為常數,曲線在該點的斜率用tantj表示:
tantj=f(x)′=2Ax+B
(4)
(5)
沿各點法線(由式(5)求出,式(5)中變量見圖5)方向分段,將樓板分成j個切片,如圖5所示。

圖5 模型切分示意
經過切分細化之后,可以假設每個切片沿著它的切線方向是直線,并且該切片的橫截面保持不變。這樣,整個樓面板的建模又轉化為直板的建模。對于每個切片,使用以下命令將切片繞z軸旋轉,即
(6)
旋轉的角度φj為每個切片j對齊的法線方向和整體直角坐標y軸的夾角。由于切片的厚度較小,可以使用切片的中間x值來計算每個切片的法線方向。
樓板的截面部分,首先提取分割完成的切片,如圖6a所示,通過弦高差算法確定每個點是否為切片的特征點[19]。

圖6 切片截面輪廓示意
假設Pi為待判定點,如圖7所示選取點Pi-1和點Pi+1構成直線L:Ax+By+C=0,判定點Pi到直線的垂直距離di。

圖7 弦高差算法示意
弦高距離di可由式(7)求得。當di≥σ(σ為對應切片的弦高差均值(閾值))時,則該點為特征點保留。通過式(8)計算得到弦高差均值并確定每一切片的閾值。通過特征值提取的方式最終確定切片的特征點,并提取出切片輪廓(圖6b)。
(7)
(8)
式中:σ為第j層的弦高差均值;mj為點云數目;di為該層的第i個點的弦高差距離。
完成特征值提取后將切片延法線方向拉升(圖8),將平行切分的切片拉伸之后進行組合最終得到完整的預制構件樓板模型,如圖9所示。
選取點云數據并通過與重構曲面的距離確認切片法生成模型的質量,如圖10所示。根據新版GB 50204-2015《混凝土結構工程施工質量驗收規范》中對裝配式構件預埋件以及模具預留孔洞等的質量檢驗要求,取允許誤差的最小值±1 mm作為誤差范圍,從圖中分析結果可以看出構件整體曲面誤差基本在誤差允許范圍之內。整體而言該方法處理點云數據并生成模型,模型整體質量較好,同時可以很好地反映構件的現實幾何狀態。
圖10模型右下以及左上顏色較深處存在一定誤差,由于構件在進行點云掃描過程中對這兩塊區域的掃描不夠到位,存在一定的缺失情況(圖11),點云模型的缺失會導致在切片過程中邊緣點云缺失,在特征值提取過程中缺失部分將無法進行特征值提取,擬合過程中直接采用線性擬合方式從而導致誤差的產生。針對因掃描過程中模型缺失導致的誤差,需再掃描補充缺失的點云數據確保特征值提取可以最大程度反映構件的現實幾何狀態。

圖10 裝配式樓板構件模型質量檢驗

圖11 原始點云數據局部展示
將上述切片j的局部xy平面投影的每個凹殼存儲為一個二維直角坐標點IfcCartesianPoint。IfcCartesianPoint元素將截面映射為IfcPolyline對象列表。通過二維剖面IfcArbitraryClosedProfileDef來描述切片截面。通過IfcExtrudedAreaSolid和IfcShapeRepresentation使用拉伸幾何模型表示樓板切片幾何形狀,并將其表示為掃描實體。掃掠實體通過拉伸方向以及深度(切片的厚度即剖面掃過的距離)兩個屬性定義。ExtrudedDirection是從每片的中間x值位置的正切方向派生的,深度由每一層的最大和最小x′坐標確定。

圖12 IFC格式片段
IFC格式的轉化可以通過CloudCompare,Meshlab等軟件將.asc格式文件轉換為.obj格式,并通過Revit擴展模塊Mesh Import導入.obj格式文件,導出IFC格式文件。
本文對IFC標準語義表達方式以及幾何表達方式進行說明,結合裝配式構建特點選取對應的LOD模型層次即大于LOD 200但不完全符合LOD 300的預制構件幾何模型。采用CloudCompare等軟件實現點云數據文件格式轉換等方面實現了自動化處理。通過KNN算法對點云數據進行預處理,很好地保留了點云模型的特征值同時滿足降噪的要求。提出了基于IFC格式的預制構件點云切片掃描處理方法,實現預制構件幾何模型重構。實驗表明,使用切片掃描重構法得到的預制構件模型其點云模型配準度較高,可以很好地還原預制構件的真實物理狀態。
與傳統的建模方法相比,本文提出的切片法在最大程度上保留了點云模型的特征,操作過程更為簡潔,效率較高,可以實現大批量數據的處理。滿足施工過程中對點云數據處理量、處理效率以及模型質量等多方面的要求。生成的以 IFC 文件為表述載體的裝配式構件信息不僅能夠在自主開發平臺中進行調用展示,同時也可以在Revit 通用平臺中進行讀取,實現拓展信息的跨平臺交互,完成裝配式建筑施工領域信息的規范化無損交流。
本研究也存在一定局限性,研究針對預制構件幾何部分通過切片掃描的方式進行模型重構,對于預埋孔洞、伸出鋼筋等的細部結構,在生成IFC文件過程中將其作為構件幾何信息一同轉化,即通過構件表面的孔洞、延伸等方式表達對應的位置以及幾何尺寸等信息。對于非幾何部分信息未作處理。同時采用本文方法對掃描過程中采集到的點云數據質量要求較高,點云數據的丟失會較大程度影響模型質量。
采用切片掃描重構的方法對點云數據進行處理時人為判斷并選取一條水平定位直線,計算定位直線的數學表達方式并進一步選定切片位置,通過選取切片位置點法線方向的方式確定拉伸方向。后續研究可將對整個構件的同一平面多條定位直線進行數學表達式提取,通過多條定位直線的斜率變化情況確定切片位置。通過不同平面建立的掃掠實體模型進行進一步擬合以實現更為精確的幾何重構模型。