梁阳泽, 徐 照, 葛晓永, 方卓祯, 洪 敏, 金明堂
(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的方式。可以使用IfcCsgPrimitive3D及其子类,如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。如一个混凝土预制板以及混凝土预制墙点簇的几何形状是使用多个平行的切片模型来近似的。柱点簇的几何形状是通过拉伸其投影轮廓来表示的。对于柱以及梁点簇,与板切片拉伸的方式相似,首先确认其截面形状,然后使用堆叠的片来表示。
本文数据采用南京市某预制构件厂的混凝土预制构件数据,通过激光扫描仪实地采集得到,共采集墙构件、楼梯等多组数据。基于IFC格式的对象拟合方法采用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文件过程中将其作为构件几何信息一同转化,即通过构件表面的孔洞、延伸等方式表达对应的位置以及几何尺寸等信息。对于非几何部分信息未作处理。同时采用本文方法对扫描过程中采集到的点云数据质量要求较高,点云数据的丢失会较大程度影响模型质量。
采用切片扫描重构的方法对点云数据进行处理时人为判断并选取一条水平定位直线,计算定位直线的数学表达方式并进一步选定切片位置,通过选取切片位置点法线方向的方式确定拉伸方向。后续研究可将对整个构件的同一平面多条定位直线进行数学表达式提取,通过多条定位直线的斜率变化情况确定切片位置。通过不同平面建立的扫掠实体模型进行进一步拟合以实现更为精确的几何重构模型。