刘世龙,马智亮
基于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