基于Dynamo的点云BIM自动化建模

2021-08-09 00:56缪盾
山东建筑大学学报 2021年4期
关键词:切片阈值构件

缪盾

(同济大学浙江学院 土木工程系,浙江 嘉兴 314000)

0 引言

点云数据是通过三维激光扫描仪或机器视觉技术获取的高精度、高密度、全数字化的目标物表征数据[1-2]。依靠逆向建模软件还能将这些空间离散点处理成三维网格模型,已经成熟地应用于基础测绘、古建保护工程中。建筑信息模型(Building Information Modeling,BIM)技术以三维建筑信息模型为核心,通过模型的分析、传递、共享、应用实现建筑的全生命周期管理,是建筑业信息化发展的基础[3]。BIM的核心建模软件Revit设置了点云链接功能,但是Revit对点云的处理能力还处于显示阶段,不能直接对其进行编辑和建模。而目前基于点云生成的网格模型是一类表面模型,不是具有结构特性和属性特性的通用BIM实体模型,模型可支持的BIM应用、分析存在很大的局限性。因此,基于点云数据创建BIM模型也成为目前学者研究的热点,大致可以分为4个研究方向:(1)通过提取点云特征线,生成二维矢量图,导入Revit中进行手动建模。吕凤华等[4]扫描了地铁车站,并提取点云特征线和相关参数进行BIM建模。高溪溪等[5]将古建点云数据导入计算机辅助设计软件(Computer Aided Design,CAD)提取特征线,生成标准图纸,通过图纸进行BIM建模。(2)通过中间软件人机互动识别点云中的常规构件进行自动建模,并导出BIM兼容格式。刘立扬等[6]将点云导入点云处理软件PointSense for Revit拟合墙面、梁柱,再导入Revit软件;石力文等[7-8]将古建点云导入用于处理扫描点云的Revit插件(Scan for BIM)[9],对一般构件拾取表面特征点进行建模。(3)对标准件采集点云,计算全局点云特征直方图描述子(Viewpoint Feature Histogram,VFH),建立标准件VFH库,通过特征值分类识别构件调用族库模型。苗亚哲等[10]建立了标准化管线的VFH库。(4)通过二次开发对点云进行建模,陈海涛[11]研究了常规简单构件的点云几何形状参数,利用二次开发工具集(Visual Studio)实现点云的BIM重建。前两个方向是目前采用较多的方式,但是存在大量的人工作业,对模型精度有一定的干扰;方向(3)使用面较窄,适用于设备(Mechanical,Electrical&Plumbing,MEP)建模;而方向(4)可以直接编辑和建模点云,人为干扰少但对编程要求高。文章采用摄影测量的方法获取目标物的密集点云数据,在可视化编程平台Dynamo中对预处理后的点云进行分层编辑分段建模,实现点云自动化建模。

1 可视化编程软件Dynamo

Dynamo是欧特克Autodesk公司推出的功能强大、使用便捷的可视化编程软件。使用者不必一行行写程序代码,甚至不必掌握编程语言,通过简单地链接预定义功能节点,轻松创建自己的算法[12]。Dynamo启动与界面如图1所示。

图1 Dynamo启动图标与界面图

Dynamo拥有强大的功能节点库,包含了分析、图形、操作、运算等8大特定功能节点类型,如图2所示。节点与节点之间通过输入、输出端口连接,运行结果同步显示在Revit中,体现了“所见即所得”的编程思想。

图2 节点展示图

2 点云BIM重建方法

点云解析了物体表面密度极高的离散点空间信息,其中包含了建模所需的特征点信息,还有大量的冗余信息,影响建模效率。同时也存在处于同一局部区域内的点云,而实体属性是不唯一的情况,影响建模的准确性。因此,在建模之前首先需要对原始点云进行分类和分割,以色彩信息和点法矢信息分类后得到属性唯一的构件级点云,通过点云切片分段建模的方式进行模型自动生成,具体建模思想是:(1)求点云三维度的极值分别为xmin、xmax、ymin、ymax、zmin和zmax,计算点云包围盒表面积,再根据点云数量计算点云平均面密度;(2)在选定方向对点云进行切片,切片数n设置为输入型参数,并计算切平面上、下一个阈值范围内的点集;(3)将上、下点集投影至切平面求交,通过离散点拟合[13]得到n个截切边界轮廓;(4)相邻边界轮廓进行放样融合创建分段实体;(5)分段实体组合、族类别设置、材质设置以及其余实例属性值设置。该方法对具有复杂表面的建筑构件有很好的建模表现,通过调正切片数还能得到精细化程度不同的实体模型。

2.1 点云采集和分类及其面密度计算

点云的采集方式有激光扫描和照片扫描两种。相对于激光扫描而言,照片扫描具有更大的灵活性和便捷性[14],工作人员只需通过普通相机对目标物进行拍照,保证每两张相片有50%的重叠度,那么通过实景扫描与三维建模软件Agisoft Photoscan[15]即可重构重叠区的像素点,生成点云数据。在Agisoft Photoscan软件中选择通过颜色、纹理和法矢信息进行点云分类,得到属性一致的点云,采集的石墩三维点云如图3所示。

图3 基于照片的三维点云重构图

按照点云类别标记码批量导出分类后的点云,其形式可选为电子表格Excel三维坐标点格式,并由Dynamo的读取数据功能节点导入点云。搜寻点云坐标中的极大、极小值,点云包围盒面积S由式(1)表示为

式中S为点云包围盒面积,m2;xmin、xmax为x维度极值,m;ymin、ymax为y维度极值,m;zmin、zmax为z维度极值,m。

点云面密度δ由式(2)表示为

式中δ为点云面密度,点/m2;N为点云总量,点。

2.2 点云切片

根据点云形态确定切片的基面,如某一维度显著大于另两个维度,则选择该维度的垂面为切片基面,这样可以精确控制模型的外形。一般情况选择z方向即高度方向为截切方向,切片为一系列平行的水平面。用户通过滑动条控制切片数量n,每个切片的z值由式(3)表示为

为了避免切平面上的点出现局部空缺或点稀疏现象,设置点云密度δ为切片阈值,增补处理切平面上、下δ范围内的点。切平面Q将阈值范围内的局部点云分为上、下两部分点集p z i+δ( )和p′z i-δ( ),将上、下点集中的点以欧式最短距离配对,如图4所示。

图4 某一切平面Q的点云投射示意图

求与上部点p1欧式距离最短的下部点p′1,则两点连线与切平面的交点为增补点p,根据相似原理,增补点p的切平面二维坐标 (x p,y p)由式(4)表示为

依次计算得到每个切平面的点集。

2.3 切面离散点拟合

上一个步骤中得到的切面点集是无序的,对这些离散点进行曲线拟合的前提是点按正向或逆向有序排列。由于切面点集最终将拟合成一条封闭的平面回转曲线,曲线上的某一x值或y值对应曲线上的点不唯一(除极点外),因此需对点集进行划分,再进行坐标值对比排序,以某一个切平面xOy为例,具体步骤为:

(1)求取切面点集中的x向或y向极值(文章采用x向),即求得xmin、xmax,及对应的极点p1、p2,则极点连线将点集分为两部分,如图5所示。

图5 点集有序化示意图

(2)求取极点连线方程,方程式为y=,选择点集中下一个点p i(x i,y p i),计算x i处p1p2连线上的点g i的y g i值。

(3)比较p i点和对应g i的y值,若y p i>y g i,则该点纳入列表1,若y p i<y g i,则该点纳入列表2,重复第2、3步,完成所有点的分类。

(4)对列表1中的点进行正向排序,列表2中的点进行逆向排序,即列表1的点按x值从小到大排列,列表2的点反之,两个列表合并为一个列表,则得到一个完整有序的切面点集。

3 实例应用

在Dynamo中完成点云的读取到BIM自动建模,共设计了三维点云读取和重采样显示、点云切片、实体建模和属性赋值4大主体节点链。以斯坦福兔子点云数据和室外石墩的照片重建点云数据为实验样本,测试其方法的可行性和可靠性。

点云的读取根据原始数据类型的不同,设计了链接点云模型和点云文本数据两种读取方式,采用滑动条方式输入重采样的距离阈值,通过功能库中的显示坐标点节点(Point.ByCoordinates)显示点云。具体节点链及程序结果如图6所示。

图6 点云显示及简化图

通过创建平面节点(PlanXY)创建一个xOy平面,并偏移至点云底部,选用转化节点(Geometry.Translate)进行切平面布置,如图7所示。

图7 兔子点云切片图

点云经过重采样后呈现无序和稀疏的状态,切平面上可能存在无点或少点附着的情况,因此对切平面上下阈值范围内的点进行投影求交。选用Dynamo节点库中的通过对角点建立方体节点(Cuboid.ByCorners)创建点云包围盒,计算面密度作为阈值,如图8(a)所示。创建阈值包围盒,通过包围盒判别节点(BoundingBox.Contain)判别盒内点集,如图8(b)所示。再启用叉积计算上盒与下盒点集的直线长,取每个点的连缀最短值为上下盒点对匹配关键码,匹配后的点对按式(3)计算切平面投影点,得到切面点云,如图8(c)所示。

图8 点云切片图

切面点集有序化通过自定义节点实现,以循环语句判别点的归属表,选用Dynamo平台中的通过控制点拟合曲线的节点(NurbsCurve.ByControlPoints)拟合切面点,得到闭合的截面曲线。通过输入横截面闭合曲线放样创建实体,该功能由放样创建实体节点(Solid.ByLoft)实现,如图9(a)所示。

通过属性设置及输出节点(Springs.FamilyInstance.ByGeometry)为模型赋予材质,选择族类别,设置名称等属性性质。此节点能自动调用Revit软件中的材质库和族库,对于如古建中的屋脊,吻兽等构件可先在Revit中创建相应族类别名称和路径,在Dynamo中即可选择该类别。对石墩进行属性设置,在该节点的输入端选择石墩的实体类别为“常规模型”,材料为“花岗岩”,在Revit中得到如图9(b)所示的实体模型。增加切面数量,将得到更精细的实体模型,石墩底部增加切面后细节表示更详细,一般在形体复杂或突变的位置可增加切面数量,规则位置处可减少切面数量。模型同步导入Revit中,并保存为标准格式,不仅能通过Revit软件中的编辑族命令进行二次编辑或改造,还能导入相应的应用软件使用。

图9 点云BIM实体模型图

4 结论

利用点云构建BIM模型能有效利用实时采集信息,扩展建模途径,提高建模效率。通过研究得到以下结论:

(1)以照片扫描方式获取的点云为素材,在Dynamo平台构建了点云显示、简化、切片、投影和建模的节点链,实现了点云到切面轮廓到模型的自动化建设,为表面形态复杂且无规则变化的构件提供了一种有效的自动化建模方法。

(2)在Dynamo平台链接Revit属性库和定义切面数,能获得不同属性和精细度的建筑信息模型,为后续模型应用提供标准模型格式和信息数据。

(3)节点链设置为通用的样板文件,可为不同点云数据实时调用,提高建模效率。为存量古建保护和既有建筑维护提供有效的实时信息数据。

猜你喜欢
切片阈值构件
钢筋混凝土构件裂缝控制
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
改进小波阈值对热泵电机振动信号的去噪研究
新局势下5G网络切片技术的强化思考
5G网络切片技术增强研究
网络切片标准分析与发展现状
浅析5G网络切片安全
基于构件的软件工程技术与理论方法探讨