劉世龍,馬智亮
基于BIM的鋼筋骨架語義設計點云自動生成算法
劉世龍,馬智亮
(清華大學土木工程系,北京 100084)
當前預制構配件鋼筋骨架質量檢查主要依靠人工,存在效率低、容易出錯的問題。建筑信息模型(BIM)、三維重建等技術為改進預制構配件鋼筋骨架質量檢查方法提供可能。運用這些技術時,有必要由鋼筋骨架BIM模型生成可區分每根鋼筋的點云。為此,提出了語義設計點云的概念,并構建了基于BIM的鋼筋骨架語義設計點云自動生成算法。該算法首先從鋼筋骨架BIM模型中提取每根鋼筋并分別存儲于不同的文件,然后對每根鋼筋所在文件進行格式轉換,接著生成每根鋼筋的語義設計點云,最后基于每根鋼筋的語義設計點云生成鋼筋骨架語義設計點云。分別用簡單鋼筋骨架和復雜鋼筋骨架對基于BIM的鋼筋骨架語義設計點云自動生成算法進行實驗驗證,結果表明,該算法能夠自動并快速地生成準確的鋼筋骨架語義設計點云。
鋼筋骨架;質量檢查;建筑信息模型;設計點云;語義點云
當前,我國建筑業依然是勞動密集型行業,建造方式粗放,難以適應我國經濟發展要求[1]。為此,需要推進建筑工業化。建筑工業化的核心包括4個方面[2]:設計標準化,構配件生產工廠化,施工機械化和管理信息化。其中,鋼筋混凝土構配件(以下簡稱“構配件”)生產工廠化是建筑工業化的重要組成部分。在構配件生產工廠化中,構配件的鋼筋骨架質量檢查具有舉足輕重的作用。
根據規范[3],構配件的鋼筋骨架質量檢查內容主要包括確認其鋼筋型號、鋼筋數量和鋼筋間距等是否與設計要求一致。目前,對這些檢查內容所采取的方法是,通過鋼尺測量或讀取鋼筋上的標識來檢查鋼筋型號,通過人工計數來檢查鋼筋數量,通過鋼尺測量來檢查鋼筋間距,然后與施工圖進行對比。總的來說,當前的檢查方法完全依賴人工。由于構配件的鋼筋骨架通常比較復雜,通過人工進行質量檢查存在效率低、容易出現錯誤等問題。
BIM、三維重建等技術的發展為改進當前構配件鋼筋骨架(以下簡稱“鋼筋骨架”)質量檢查現狀提供了可能,即通過三維重建等技術獲得鋼筋骨架的實際狀況,再與代表設計要求的BIM模型進行對比,從而給出質量檢查結果。在運用這些技術時,一方面需要根據三維重建等技術獲取鋼筋骨架的實際點云,另一方面需要從BIM模型獲取鋼筋骨架的設計點云,然后將實際點云與設計點云進行對比,以檢查鋼筋骨架質量。
獲取鋼筋骨架實際點云可以借助當前研究中獲取建筑及其部件實際點云的方法。MANI等[4]利用特定的算法對建筑施工場地的多幅圖像進行處理,生成建筑施工場地的實際點云,然后將該實際點云與建筑BIM模型對比,得到建筑場地建造進度。KIM等[5]利用三維激光掃描儀獲取建筑的實際點云,然后將該實際點云與由該建筑BIM模型生成的設計點云進行對比,得到建筑的建造進度。當前研究中使用的獲取建筑及其部件實際點云的方法可分為2類:①用特定的算法對建筑及其部件的圖像進行處理以生成實際點云;②使用三維激光掃描儀獲取實際點云,2類方法均較為成熟,因此可以直接用于獲取鋼筋骨架實際點云。然而,上述研究對BIM模型生成設計點云的方法,并未有專門描述。
其他少數研究的研究者對從BIM模型生成設計點云的方法進行了專門描述。BOSCHé等[6]基于從虛擬激光掃描儀向BIM模型投射射線從而計算點云中點坐標的原理,模擬實際激光掃描儀生成設計點云。在模擬時要求虛擬激光掃描儀的掃描位置和分辨率與實際激光掃描儀相同。REBOLJ等[7]在開源軟件HeliOS中用虛擬激光掃描儀掃描設計模型,從而獲取設計點云。在具體操作時,虛擬激光掃描儀的4個參數要求與實際激光掃描儀相同,即掃描儀沿著軌道移動的速度、采樣頻率、深度準確性和激光束角度偏差。KIM等[8]提出從CAD模型生成設計點云的方法。首先,將CAD模型存儲為STL格式的文件,然后根據該文件中的三角面片生成設計點云。然而,以上BIM模型生成設計點云的方法均需要繁瑣的人工操作。此外,這些方法生成的設計點云僅包含三維坐標分量信息。如果直接利用這些設計點云進行鋼筋骨架質量檢查,需要經過手工或繁瑣的算法從設計點云提取每根鋼筋設計點云等步驟,給鋼筋骨架質量檢查帶來困難。
為此,本文提出了語義設計點云的概念,其不僅包含三維坐標分量信息,還包含語義信息。由此可以避免利用設計點云進行鋼筋骨架質量檢查所出現的麻煩。然后,以此為基礎提出一種基于BIM的鋼筋骨架語義設計點云自動生成算法。
本文將首先介紹語義設計點云的概念,然后介紹基于BIM的鋼筋骨架語義設計點云自動生成算法的框架,接著對算法中的關鍵步驟進行介紹,包括每根鋼筋實體模型的抽取及導出、鋼筋語義設計點云生成等,最后通過實驗驗證本算法的可行性。
利用本文算法生成的鋼筋骨架語義設計點云,可以有效降低鋼筋骨架質量檢查的難度。此外,該算法具有一般性,不僅可以用于生成鋼筋骨架語義設計點云,也可以用于生成建筑及其構件的語義設計點云,這將為建筑建造進度監測、建筑構件質量檢查等應用提供便利。
語義設計點云是設計點云的一種,其不僅包含設計點云的全部信息,還包括語義信息。由于設計點云僅包含三維坐標分量信息,所以可用(,,)表示其包含的任意一個點。其中,,和分別是三維坐標分量的值。相對地,語義設計點云中的任意一個點可以用(,,,)表示。其中,為該點的語義信息,其取值可以是該點所屬圖元的ID,也可是該點所屬圖元的類別,例如墻、桌子等。通常,的值可以從設計模型獲取。
如果設計點云包含語義信息,則根據點的信息可以快速判斷該點屬于哪個圖元或者屬于哪個類別的圖元,從而可以快速提取屬于某個圖元或某一類別圖元的所有點。
具體地,對于鋼筋骨架語義設計點云,由于各點所屬圖元的類別均是鋼筋,所以,選擇鋼筋圖元的ID(以下簡稱“鋼筋ID”)作為各點的語義信息。
為了自動生成鋼筋骨架語義設計點云,需要解決2個問題:①如何生成帶有語義信息的鋼筋骨架設計點云;②如何自動地生成該語義設計點云。這2個問題也是技術難點。針對問題①的解決思路是,從鋼筋骨架BIM模型中將每根鋼筋單獨提取出來,分別進行處理獲得對應的點云,再附加鋼筋ID信息,得到每根鋼筋的語義設計點云,最后經整合生成鋼筋骨架語義設計點云。針對問題②的解決思路是,通過編寫程序或自動調用其他軟件的方式實現語義設計點云生成的自動化。在這些思路的基礎上,本文建立了鋼筋骨架語義設計點云自動生成算法框架,如圖1所示。

圖1 算法框架
該算法首先,從鋼筋骨架BIM模型抽取每根鋼筋的實體模型,并分別將其導出至單獨的文件中。然后,對這些文件進行格式轉換,以獲取易于轉換為點云的網格模型文件格式。接著,根據每根鋼筋的網格模型,分別生成每根鋼筋的語義設計點云。最后,對每根鋼筋的語義設計點云進行整合,即可得到鋼筋骨架的語義設計點云。
相比于當前從BIM模型生成設計點云的算法,該算法能夠生成含有語義信息的設計點云,而不僅僅是設計點云。此外,該算法各個步驟均通過編寫程序或調用其他軟件自動實現,無需人工參與。
因為目前在工程上主要使用美國Autodesk公司的Revit軟件建立BIM模型,所以本文將針對由Revit建立的BIM模型建立算法,并通過對Revit進行二次開發獲得相應的程序。需要說明的是,本算法框架完全可以應用于由其他軟件建立的BIM模型。
不失一般性地,本文接下來將僅考慮墻體構件BIM模型中鋼筋骨架的BIM模型。在由Revit建立墻體構件BIM模型時,鋼筋骨架通過輸入相關參數生成,且依附于墻體。
以下分別說明基于BIM的鋼筋骨架語義設計點云自動生成算法關鍵步驟。
本步驟將鋼筋骨架BIM模型中每根鋼筋的實體模型分別導出至獨立的文件中,同時給每個文件關聯對應的鋼筋ID信息。
在Revit中,BIM模型是以實體模型形式存在的(文件格式為rvt),但其提供了導出為網格模型的功能,即導出為fbx格式的文件。fbx格式的文件以三角面片的形式表示網格模型,便于轉換為點云,所以本文選擇該格式文件作為導出文件。fbx是一種三維數據存儲文件格式,廣泛應用于Autodesk公司旗下產品間的數據交換[9]。需要說明的是,fbx格式文件中三角面片的大小由Revit定義,無需用戶指定。
由于從Revit中導出fbx文件時,要求當前視圖必須為三維視圖。所以本步驟在Revit的三維視圖中完成,即在使用本步驟的算法前,先將Revit的視圖切換至三維視圖。此外,在三維視圖下導出fbx文件時,會將三維視圖中所有可見圖元導出至fbx文件。因此,在將每根鋼筋導出至fbx文件時,有必要通過編程設置其他所有圖元在三維視圖中不可見,只保留該鋼筋在三維視圖中可見。
每根鋼筋實體模型的抽取及導出的各子步驟如圖2所示。在本步驟中,設置所有圖元為不可見子步驟僅執行一次,設置鋼筋為可見、輸出fbx文件和設置鋼筋為不可見3個子步驟對每根鋼筋均執行一次。

圖2 每根鋼筋實體模型的抽取及導出步驟中的各子步驟
3.1.1 設置所有圖元為不可見
本子步驟,首先提取BIM模型中的墻體,并設置其在三維視圖中不可見。其次,提取BIM模型中墻體的鋼筋,并把其加入集合中。最后,將集合中的所有鋼筋設置為在三維視圖中不可見。
其中,提取墻體或鋼筋通過Revit二次開發接口的FilteredElementCollector類實現,圖元在三維視圖中不可見通過HideElements函數實現。
3.1.2 設置鋼筋為可見
因為上一子步驟設置所有圖元在三維視圖中不可見,所以為了將集合中某根鋼筋輸出至fbx文件,需要將其設置為在三維視圖中可見。
設置鋼筋在三維視圖中可見,需通過Revit二次開發接口的UnhideElements函數實現。
3.1.3 導出fbx文件
為實現fbx文件與鋼筋語義信息的關聯,將鋼筋輸出至fbx文件時,將該fbx文件命名為“ID.fbx”。其中ID為鋼筋在該BIM模型中的全局唯一編碼,該ID在鋼筋創建時由Revit自動生成。集合中每根鋼筋均被導出至各自的fbx文件,這些文件位于同一個文件夾內。
導出fbx文件通過Revit二次開發接口Document類的Export函數實現。該函數能夠將三維視圖中所有可見圖元導出至同一個fbx文件中。由于在本步驟中,只有單根鋼筋在三維視圖中可見,所以導出的fbx文件只含有該根鋼筋。
3.1.4 設置鋼筋為不可見
將當前鋼筋輸出至fbx文件后,為了不影響后續其他鋼筋輸出至fbx文件,需要在三維視圖中將當前鋼筋設置為不可見。
在三維視圖設置鋼筋為不可見所用的函數已經在3.1.1節說明,這里不再贅述。
每根鋼筋實體模型的抽取及導出步驟對應的算法偽代碼如下:
輸入:鋼筋骨架BIM模型;
輸出:每根鋼筋的fbx文件。
符號說明:C,鋼筋骨架BIM模型中墻體的集合;C,鋼筋骨架BIM模型中鋼筋的集合;,C中的一根鋼筋。
雖然fbx格式的文件以網格模型存儲鋼筋骨架,但為了通過現有軟件獲得點云,還需要將其轉換為另外一種易于轉換為點云且存儲網格模型的文件格式,即obj格式。
格式轉換步驟的具體做法是,遍歷3.1.3節文件夾中的每個fbx文件,并將該文件轉換為obj文件,且obj文件與fbx文件的文件名相同。在這里,通過調用Assimp軟件進行格式轉換,因為Assimp軟件可以讀取fbx格式的文件,同時輸出obj格式的文件。具體來說,通過命令行調用Assimp軟件的export命令實現將fbx文件轉換為obj文件。
Assimp[10](Open Asset Import Library)是一款開源的3D模型格式轉換軟件,該軟件可以讀取50余種格式的文件,并生成10余種格式的文件。
本步驟的目的是生成鋼筋的語義設計點云,包含3個子步驟,如圖3所示。

圖3 鋼筋語義設計點云生成步驟的各子步驟
3.3.1 鋼筋點云生成
本子步驟的目的是根據每根鋼筋的obj文件生成每根鋼筋點云,供后續子步驟使用。
本文通過調用PCL[11](Point Cloud Library)庫的fromPCLPointCloud2函數將每根鋼筋obj文件中的網格模型轉換為每根鋼筋點云,每根鋼筋點云中的每個點用(,,,)表示,各符號的意義同第1節。在本子步驟中,每個點的值尚為空。
PCL是一款開源的點云處理類庫,提供點云的讀取輸出、配準、分割等功能函數。
3.3.2 語義信息添加
本子步驟的目的是,對每根鋼筋點云中的每個點添加語義信息。
具體做法是,遍歷每根鋼筋點云中的每個點,然后將每個點的值修改為obj文件名中的ID,即得到每根鋼筋的語義設計點云。
3.3.3 單位轉換
由于fbx文件使用Revit中的系統單位[12],所以fbx文件中的長度單位是英尺。在格式轉換步驟和語義設計點云生成步驟的前2個子步驟中,不涉及長度單位的轉換,因此目前得到的單根鋼筋點云的長度單位是英尺。考慮到以英尺為長度單位不符合我國實際應用情況,需要將點云的長度單位由英尺轉換為毫米。
單位轉換的具體做法是,遍歷每根鋼筋語義設計點云中的每一個點,將其3個坐標分量分別擴大304.8倍(1英尺等于304.8毫米),即得單位轉換后的每根鋼筋語義設計點云。
鋼筋語義設計點云生成步驟對應的算法偽代碼如下:
輸入:每根鋼筋的obj文件;
輸出:每根鋼筋的語義設計點云。
符號說明:,中的一個點。.,的坐標分量;.,的坐標分量;.,的坐標分量;.,的語義信息。
在得到每根鋼筋的語義設計點云后,需要對其進行整合,以得到鋼筋骨架語義設計點云。
點云整合的具體做法是,開辟新的點云存儲空間,然后遍歷每根鋼筋的語義設計點云,將每根鋼筋的語義設計點云拷貝至該存儲空間,即可實現點云整合。
每根鋼筋實體模型的抽取及導出步驟的算法模塊通過C#編程實現,轉換為易于轉換為點云的文件格式步驟通過C++編程實現自動化,鋼筋語義設計點云生成步驟和每根鋼筋語義設計點云的整合步驟的算法模塊通過C++編程實現。以上算法模塊最終集成為一個Revit插件。
為了驗證本文提出算法的可行性、生成鋼筋骨架語義設計點云的耗時以及語義的準確性,開展了相關實驗。首先,在Revit中建立了鋼筋骨架BIM模型,然后用本文提出的算法對該BIM模型進行處理,并記錄處理時間,從而得到生成鋼筋骨架語義設計點云的耗時。然后,以不同顏色可視化該點云中不同語義的點,以相同顏色可視化該點云中相同語義的點,從而驗證語義的準確性。根據生成鋼筋骨架語義設計點云的耗時以及語義的準確性,即可判斷該算法的可行性。
本實驗在Revit中建立了如圖4所示的鋼筋骨架。各鋼筋骨架的詳細信息見表1。


表1 簡單鋼筋骨架和復雜鋼筋骨架的詳細信息
實驗所用的筆記本電腦的配置為:Intel Core i7 4核CPU,16 G內存。
用基于BIM的鋼筋骨架語義設計點云自動生成算法分別對簡單鋼筋骨架和復雜鋼筋骨架進行處理,生成的鋼筋骨架語義設計點云分別有12.2萬個點和49.4萬個點,如圖5(a)和(b)所示。在生成鋼筋骨架語義設計點云的過程中,基于BIM的鋼筋骨架語義設計點云自動生成算法耗時見表2。

圖5 語義設計點云((a)簡單鋼筋骨架;(b)復雜鋼筋骨架)

表2 算法耗時統計
鋼筋骨架由簡單到復雜,體現在整體尺寸變大和鋼筋根數增多,二者的結果使得鋼筋總長度變大。隨著鋼筋骨架越來越復雜,即鋼筋總長度越來越長,本文提出的基于BIM的鋼筋骨架語義設計點云自動生成算法的耗時會逐漸增加。對于實際的鋼筋骨架BIM模型,其整體尺寸與本實驗所用復雜鋼筋骨架近似,鋼筋根數比本實驗所用復雜鋼筋骨架多,使得其鋼筋總長度比本實驗所用復雜鋼筋骨架的鋼筋總長度長,但算法耗時并非呈幾何倍數增長,所以不存在算法耗時過長的問題。
為了驗證基于BIM的鋼筋骨架語義設計點云自動生成算法在語義方面的正確性,本文實驗對簡單鋼筋骨架語義設計點云中不同語義的點賦予不同的顏色,相同語義的點賦予相同顏色,所得簡單鋼筋骨架語義設計點云如圖6(a)所示,整個過程通過編程實現。對復雜鋼筋骨架語義設計點云進行同樣操作,結果如圖6(b)所示。

圖6 彩色語義設計點云((a)簡單鋼筋骨架;(b)復雜鋼筋骨架)
從圖6可以看出,本文提出的基于BIM的鋼筋骨架語義設計點云自動生成算法能夠自動地生成鋼筋骨架語義設計點云,且速度較快,語義信息準確無誤。因此,可以將該算法用于生成鋼筋骨架的語義設計點云,從而提高鋼筋骨架語義設計點云生成的效率,并降低鋼筋骨架質量檢查的難度。
運用BIM、三維重建等技術進行構配件鋼筋骨架質量檢查時,由鋼筋骨架BIM模型生成可區分每鋼筋的設計點云必不可少。為此,提出了語義設計點云的概念,并以此為基礎提出了基于BIM的鋼筋骨架語義設計點云自動生成算法,對該算法進行了介紹。結果表明,基于BIM的鋼筋骨架語義設計點云自動生成算法能夠自動生成鋼筋骨架的語義設計點云,且耗時不長。該算法的提出,將有助于運用新技術提高構配件鋼筋骨架質量檢查的效率和可靠性。
[1] 程小紅. 智能建造與建筑工業化協同發展建筑業轉型升級瞄準新路徑[EB/OL]. [2021-02-23]. http://www.chinajsb.cn/ html/202008/17/12812.html.
CHENG X H. The coordinated development of intelligent construction and construction industrialization, the transformation and upgrading of the construction industry, aiming at a new path [EB/OL]. [2021-02-23]. http://www. chinajsb.cn/html/202008/17/12812.html (in Chinese).
[2] 王俊, 趙基達, 胡宗羽. 我國建筑工業化發展現狀與思考[J]. 土木工程學報, 2016, 49(5): 1-8.
WANG J, ZHAO J D, HU Z Y. Review and thinking on development of building industrialization in China[J]. China Civil Engineering Journal, 2016, 49(5): 1-8 (in Chinese).
[3] 中國建筑標準設計研究院, 等. JGJ 1-2014 裝配式混凝土結構技術規程[S]. 北京: 中國建筑工業出版社, 2014: 56-57.
China Institute of Building Standard Design & Research, et al. JGJ 1-2014 Technical specification for precast concrete structures[S]. Beijing: China Building Industry Press, 2014: 56-57 (in Chinese).
[4] MANI G F, FENIOSKY P M, SAVARESE S. D4AR-A 4-dimensional augmented reality model for automating construction progress monitoring data collection, processing and communication[J]. Electronic Journal of Information Technology in Construction, 2009, 14: 129-153.
[5] KIM C, SON H, KIM C. Automated construction progress measurement using a 4D building information model and 3D data[J]. Automation in Construction, 2013, 31: 75-82.
[6] BOSCHé F, AHMED M, TURKAN Y, et al. The value of integrating Scan-to-BIM and Scan-vs-BIM techniques for construction monitoring using laser scanning and BIM: the case of cylindrical MEP components[J]. Automation in Construction, 2015, 49: 201-213.
[7] REBOLJ D, PU?KO Z, BABI? N ?, et al. Point cloud quality requirements for Scan-vs-BIM based automated construction progress monitoring[J]. Automation in Construction, 2017, 84: 323-334.
[8] KIM C, LEE J, CHO M, et al. Fully automated registration of 3D CAD model with point cloud from construction site[C]// 28th International Symposium on Automation and Robotics in Construction. Korea: ISARC Press, 2011: 917-922.
[9] Autodesk. FBX overview [EB/OL]. [2021-02-23]. https://www. autodesk.com/products/fbx/overview.
[10] KIM K. The Open-Asset-Importer-Lib [EB/OL]. [2021-02-23]. https://www.assimp.org/.
[11] RUSU R B, COUSINS S. Point Cloud Library [EB/OL]. [2021-02-23]. https://pointclouds.org/.
[12] Autodesk. 何為Revit的內部單位系統?[EB/OL]. [2021-02-23]. https://reurl.cc/ra5pWE.
Autodesk. What is Revit's internal unit system? [EB/OL]. [2021-02-23]. https://reurl.cc/ra5pWE (in Chinese).
BIM-based algorithm for automatic generation of semantic as-designed point cloud of reinforcement skeleton
LIU Shi-long, MA Zhi-liang
(Department of Civil Engineering, Tsinghua University, Beijing 100084, China)
At present, the quality inspection of the reinforcement skeleton of prefabricated components mainly relies on manual labor, which is time-consuming and error-prone. BIM (building information model), 3D reconstruction and other technologies provide the possibility of improving the quality inspection method of the reinforcement skeleton of the prefabricated components. When using these technologies, it is necessary to generate a point cloud that can distinguish each steel bar from the BIM model of the reinforcement skeleton. Therefore, the concept of the semantic as-designed point cloud was proposed, and a BIM-based algorithm for automatic generation of the semantic as-designed point cloud of reinforcement skeleton was built. First, the algorithm extracts each steel bar from a BIM model and stores them in separate files. Then, the format of these files is converted, and the semantic as-designed point cloud of each steel bar is generated. Finally, a semantic as-designed point cloud of the reinforcement skeleton is generated based on the semantic as-designed point cloud of each steel bar. The algorithm was experimentally verified with a simple reinforcement skeleton and a complex reinforcement skeleton respectively. The result shows that the algorithm can automatically and quickly generate an accurate sematic as-designed point cloud of a reinforcement skeleton.
reinforcement skeleton; quality inspection; building information model; as-designed point cloud; semantic point cloud
TP 391
10.11996/JG.j.2095-302X.2021050816
A
2095-302X(2021)05-0816-07
2021-03-02;
2021-05-21
2 March,2021;
21 May,2021
國家自然科學基金項目(51678345)
National Natural Science Foundation of China (51678345)
劉世龍(1991–),男,江蘇邳州人,博士研究生。主要研究方向為土木工程信息技術。E-mail:erickrt@163.com
LIU Shi-long (1991–), male, PhD candidate. His main research interest covers IT in civil engineering. E-mail:erickrt@163.com
馬智亮(1963–),男,陜西府谷人,教授,博士。主要研究方向為土木工程信息技術。E-mail:mazl@tsinghua.edu.cn
MA Zhi-liang (1963–), male, professor, Ph.D. His main research interest covers IT in civil engineering. E-mail:mazl@tsinghua.edu.cn