APP下载

基于CATIA V6的BIM模型轻量化转换方法与实现

2023-12-02娜,栗煜,韩涛,陈

人民长江 2023年11期
关键词:面片轻量化实例

韩 娅 娜,栗 煜,韩 江 涛,陈 明 武

(中国电建集团西北勘测设计研究院有限公司,陕西 西安 710065)

0 引 言

随着数字技术的不断变革,“数字中国”战略不断推进,建筑行业借助BIM(Building Information Modeling)技术,对建筑实体进行数字化建模,实现建筑产品的“数字孪生”[1]。BIM概念最初由Chuck在1975年提出,直到2004年BIM技术才在国内逐步发展[2]。该技术的发展服务于建筑工程的规划、设计、施工、运维等全生命周期的协同管理[3-4],实现了工程各阶段的数据互通共享[5]。

目前CATIA V6已经水利水电、土木建筑等领域得到了广泛应用[6]。由于工程体量的增大,模型同时具有结构复杂、数据体量大、精细化程度高、构件数量多等特点[7],导致BIM模型在工程应用中出现加载速度慢、渲染效果不佳、用户交互体验差等问题,难以满足实际项目需求[8]。因此如何实现模型的轻量化,提升模型的加载显示速率,是当前BIM研究工作的重中之重[9]。

目前已有众多学者针对BIM轻量化技术展开研究。Rong等[10]利用BIMFACE二次开发接口,建设石川河大桥BIM平台,实现了桥梁模型的轻量化展示应用。孙源等[11]通过自研BIM仿真平台,从文件格式优化、轻量化数据结构设计、几何简化算法和渲染优化算法等方面搭建BIM轻量化体系,使用PagedLOD等技术实现了大体量BIM模型加载和显示。陈科等[12]设计了一种针对BIM模型几何特征简化的方法,通过对三角面片和边界的简化,在保留模型原有几何特征的基础上实现了模型轻量化。佘宇深[13]在Revit软件中对族进行分析,构建出一套合理的基于Revit桥梁设计的参数化方法,从而实现BIM模型的轻量优化。徐雷[14]提出OSMC算法,该算法基于八叉树的结构组织体元,实现模型局部三角面片的削减,达到轻量化的目的。李文博等[15]采用CATIA 二次开发技术,开发出针对CATIA V5的BIM模型轻量化工具,可以对BIM模型中的零件进行批量处理,但是只能保留部分属性信息。安俊霖等[16]利用CATIA的模块分析工具对轻型货车驱动桥壳的几何模型进行分析,设计出桥壳的轻量化方法,减少桥壳的重量和用料量。陈前等[17]采用三角网格存储、Zstd压缩算法进行轻量化处理,优化模型数据存储。

但以上文献都没有针对CATIA V6模型进行轻量化转换的研究,使得V6模型在工程全生命周期中的应用仍不是非常广泛[18]。因此本文提出了一种基于CATIA V6的BIM模型轻量化转换方法。首先定义了一种“参考-实例”的轻量化数据存储结构,以减少重复数据;其次通过CATIA V6的CAA二次开发组件遍历模型结构树,完整获取并离散几何、属性等信息;将提取的数据存储至自定义的数据存储结构中,实现模型的轻量化;同时通过暴露转换中的配置项,实现对位移矩阵、转换精度、几何颗粒度等参数的灵活配置。应用结果证明,该方法在保证模型数据完整性的前提下,能大大提高模型的轻量化程度,实现BIM模型在工程中的便捷应用。

1 总体设计方案

根据CATIA V6模型的特点,通过遍历模型结构树,提取零件参考节点的几何信息(点、线、面、体)和非几何信息(颜色、材质、属性、参数);提取零件实例节点与参考节点的相对位置坐标信息,也就是实例与参考之间的“参考-实例”引用关系。最终按照自定义轻量化格式重组形成轻量化文件。轻量化转换的技术路线如图1所示。

图1 轻量化转换技术路线Fig.1 Lightweight conversion technology roadmap

将原始数据模型中待提取的信息分为模型组织结构和模型信息。模型信息包含几何信息和非几何信息。其中,几何信息从模型根节点开始遍历所有节点,获取模型节点的几何特征,进行离散化处理,得到三角面片的数学模型。同时提取每个节点的非几何信息,主要包括颜色、材质等绘制属性信息,设计属性和设计参数等模型属性信息。将各类信息按照自定义的轻量化格式进行数据重组。对于多实例的情况,为了避免重复数据产生,按照“参考-实例”逻辑结构对模型组织结构进行优化,最终生成轻量化的结果文件,得到轻量化模型。

2 关键技术

本文首先通过定义“参考-实例”轻量化模型数据结构,以减少重复数据,压缩模型体量;其次对BIM模型的结构、几何、属性等信息进行解析、离散和提取,得到轻量化的模型数据;最后将提取的数据存储至自定义的数据存储结构中,实现V6模型的轻量化。下文将对以上关键技术进行详细阐述。

2.1 轻量化模型数据结构定义

本文定义的轻量化模型数据格式,包含结构数据、几何数据、属性数据3部分,具体的数据组成如图2所示。

图2 轻量化模型数据组成Fig.2 Data composition of lightweight model

其中,结构数据表达模型的组织结构使用段结构(segment)表述。几何数据表达模型的模型数据,包含面结构(Shell)、多线段(Polyline)和三角面片(Triangle Shell)等几何信息。属性数据分为绘制属性和模型属性,绘制属性表达绘制时属性设置,主要包含模型的颜色(Color)、可见性(Visibility)、纹理、材质(Texture)、贴图和透明度(Alpha)等绘制信息;模型属性主要表达模型节点的数据属性(Properties),如设计属性、设计参数等。

针对CATIA V6模型多实例、重复数据的特点,设计了“参考-实例”逻辑存储结构。对于模型中的多份相同数据,只保留一份模型数据作为模板,其他数据作为实例对模板进行引用。具体的“参考-实例”存储结构如图3所示。参考模板记录参考的几何特征;样式模板记录参考的绘制属性;模板引用关系用来表达模型实例与参考模板之间的引用关系和相对位置关系,样式引用关系用来表达模型实例与样式模板之间的引用关系;实例属性用来对实例添加自身的属性数据,保证模型属性信息的完整性。该“参考-实例”存储结构可以使轻量化后的数据量大大降低。

图3 “参考-实例”存储结构Fig.3 Storage structure of "reference-example" logic

2.2 模型解析与提取方法

模型解析的主要内容是对原始模型的结构信息、几何信息和属性信息分别进行解析与提取。遍历模型结构树,获取原始模型的结构信息;通过几何特征离散方法,得到离散的三角面片数据,获取原始模型的几何信息;通过二次开发接口获取绘制属性、模型属性等数据,从而得到原始模型的属性信息。

2.2.1几何特征离散方法

模型几何离散过程为:模型拓扑结构→几何离散处理→离散化数据组织与表达。

几何离散处理的主要对象包括零件模型中的几何体、曲面、平面、边线、曲线。其中对于曲面、平面、几何体表面的离散化,得到三角面片信息TrangleShell;对曲线和几何体边界离散化后得到线段信息Bar;线段的端点会包含离散化后的点信息Points。本文的轻量化方法通过设置距离参数Sag,长度参数Step和角度参数Angle对离散精度进行控制,如图4所示。

图4 离散精度参数划分Fig.4 Partitioning of discrete precision parameter

其中Sag表示经过离散化后的线段到原始模型的最大距离Dismax,距离越远,模型精度越低;Angle表示经过离散化后,每条线端切线的最大夹角度数Angmax,角度越大,对应的精度越低;Step表示曲线、边界线经过离散化后的线段的最大长度Legmax,长度越长精度越低。

通过CATIA V6离散器对模型几何数据进行离散,Sag和Angle共同控制曲面、平面、几何体表面的离散过程,通过Dismax和Angmax共同调节精确度;Step控制曲线和几何体边界的离散过程,通过Legmax调节精度。

对于模型的不同拓扑结构,经CATIA V6离散器离散过后将得到不同的数据类型,相应的数据组织与存储方式也不同。曲线和几何体边界线离散后的数据存储为连续的点集Points,即为Points(p0,p1,p2,…,pn),其中相邻点表示为一个线段信息Bar。曲面、平面和几何体表面离散后通过不同形式的三角面片进行存储,图5所示为4种不同形式的三角面片表达。

图5 不同的三角面片组织形式Fig.5 Different trangle organization structure

图5(a)为单独三角面片,是由3个顶点数据构成的独立三角面片,表示为Trangles(v1,v2,v3);图5(b)为扇形三角面片组,表示为Fans(v0,v1,v2,…,vn),其中v0为扇形三角面片组的中心点,v1~vn中任意相邻的两点和V0构成一个三角面片;图5(c)为条带状三角面片组,表示为Strips(v1,v2,…,vn),其中任意连续的三个点构成一个三角面片;图5(d)为多边形三角面片组,表示为Polygans(v1,v2,v3,v4),主要用于表示一些三维空间中结构特殊,无法通过上述存储结构表达的三角面片信息。

通过对原始模型几何数据离散,得到Points、Trangles、Fans、Strips和Polygans 5种形式的轻量化数据结构,用于轻量模型几何信息的存储。

2.2.2非几何信息提取方法

非几何信息包含绘制属性和模型属性。绘制属性主要有模型的颜色、透明度、纹理、材质、贴图等绘制信息;模型属性主要有模型节点的右键属性、设计属性、设计参数等信息。

绘制属性的提取。在CATIA V6中,材质的类型分为Core材质和覆盖材质,并有独立存储的材质库,通过建立引用关系添加材质。因此在绘制属性提取过程中,首先获取几何特征的颜色和透明度,其次获取几何特征所添加的Core材质和覆盖材质,最后提取Core材质和覆盖材质中外观域对应的贴图、UV、比例等数据,从而实现对绘制信息的提取。

模型属性的提取。设计属性可以直接通过属性接口读取模型节点的参考属性或实例属性来获取。设计参数记录在参考中,主要表现形式为模型结构树上的参数集,或为几何图形集下的参数,一般通过参数接口读取对应节点的参数组(参数)。

2.3 轻量化数据存储方法

完成模型结构、几何、属性等数据提取后,将这些模型数据存入对应的轻量化数据存储结构中。为了进一步压缩数据体量,按照2.1节所述的“参考-实例”的数据存储方法,建立引用关系,得到最终的轻量化文件。

为了提高轻量化转换的灵活性,在轻量数据转换存储过程中对外暴露了配置参数,分别为坐标转换矩阵、导出精度和最小构件单元等。坐标转换矩阵表示模型的整体位移矩阵;导出精度代表几何离散化时的控制精度;最小构件单元,即一个独立几何单元的大小,可以配置为CATIA 模型中的零件part或几何体body。图6所示为轻量化数据存储方法的具体流程。

图6 轻量化数据存储流程Fig.6 Flow chart of lightweight data storage

(1) 获取转换配置参数,包括坐标转换矩阵Matrix、导出精度和最小构件单元。

(2) 判断当前模型节点是否为根节点,若是根节点,执行步骤(3),否则执行步骤(4)。

(3) 直接创建新的segment用于保存节点信息,为节点添加模型整体的位移矩阵。

(4) 查找父节点,在父节点下创建segment,用于保存节点数据信息,并获取segment的名称。

(5) 获取零件组节点的参考ID。

(6) 为第一次出现的节点创建实例segment,判断该参考ID是否第一次出现,若该参考出现过,跳转到步骤(10),若参考第一次出现,进入步骤(7)。

(7) 根据配置的最小构件单元参数,判断是否以part为最小构件单位导出,若以part为最小导出单位,执行步骤(8),否则跳转到步骤(19)。

(8) 为导出构件添加ID和构件类型。

(9) 生成body节点的segment,跳转到步骤(15)。

(10) 判断是否已经创建该参考模板,若参考模板未创建,进入步骤(11);若参考模板已经创建,跳转到步骤(12)。

(11) 将该segment作为参考模板保存。

(12) 根据配置的导出颗粒度参数,判断是否以body为最小构件单位导出,若不以body为最小导出单位,进入到步骤(13);若以body为最小导出单位,跳转到步骤(14)。

(13) 在实例segment引用这个模板到part层级,最小构件单元到body层级。

(14) 在实例segment引用这个模板到body层级,最小构件单元到body层级。

(15) 判断当前节点是否包含子节点,若包含,则重复步骤(2),若不包含,则处理完毕。

3 应用与分析

本文设计的基于CATIA V6的BIM模型轻量化转换方法通过遍历模型结构树实现模型相关几何信息和非几何信息的提取,保证了模型结构、几何特征和非几何信息的完整性。存储数据时通过建立“参考-实例”引用关系,形成轻量化文件,可以大大压缩模型数据量。另外在转换过程中仅对当前转换的模型节点设置为编辑模型,对已转换模型设置为浏览模式,减少电脑内存消耗,从而保证了大体量模型的转换效率。结合该轻量化方法在大型水利枢纽工程项目中的应用情况,对本文所述方法进行分析及总结。

3.1 应用项目简介

该水利枢纽工程主要由混凝土面板砂砾石坝(最大坝高247 m)、开敞式岸边溢洪道、泄洪排沙洞、排沙放空洞、发电引水系统以及生态放水设施组成。该项目主要通过CATIA V6开展设计工作,原始模型结构如图7所示。

图7 大型水利枢纽工程原始模型结构Fig.7 Original model structure of a hydraulic complex project

3.2 轻量化转换测试

开发的轻量化转换工具界面如图8所示。在进行轻量化转换时,可通过转换界面配置模型的位移、属性、参数、导出精度、最小构件级别等参数,实现不同需求的轻量化模型导出。

图8 轻量化转换工具界面Fig.8 Lightweight conversion tool interface

为了充分验证数据转换的压缩比和转换性能,分别对各专业以及整体模型进行转换,统计原始模型大小、最高精度轻量化模型大小、最低精度轻量化模型大小以及转换耗时,并根据统计结果计算最高和最低压缩比,进一步验证轻量化转换的压缩比及转换性能指标。

为了保证测试数据的准确性,所有测试用例的参数都进行如下配置:节点名称规则配置为实例名,属性和参数设置配置为导出全部属性和参数,最小构件单元配置以几何体为最小构件单元。所有转换均在清理缓存且模型未打开编辑模式下进行。测试结果见表1。

表1 多专业轻量化前后结果对比Tab.1 Comparison before and after multi-professional lightweight

接下来分析数据转换的压缩比,也就是轻量化前后模型大小的比值。相较于同一模型,精度越低得到的轻量模型越小,压缩比越高;相较于不同模型,压缩比与实例化程度、几何复杂度等模型自身特性有密切关系。若模型本身为三角面片数据(如地质专业模型),轻量化后得到的模型受精度影响不大,压缩比较低。若模型本身存在大量的平面结构(如坝工专业模型),在进行几何离散时,可以得到数据存储量低的Triangle Shell结构,因此压缩比较高。本文测试的轻量化压缩比,是在保证导出数据完整性情况下的统计结果,可知模型压缩比的范围大致为10~144。

分析轻量化转换性能,由表1可知,不同文件大小的单专业模型测试耗时大约为30~140 s,耗时最短的为水机专业(29 MB),最低精度转换时用时34 s。全专业模型(3 543 MB),最低精度转换时耗时大约775 s,最高精度转换时耗时大约847 s。从测试结果来看,较大体量模型转换耗时较多,主要原因是转换过程通过CATIA二次开发接口,遍历结构树节点获取模型信息,不可避免地会在节点数据加载及读取过程中耗费一定时间。若在转换之前预先将待转换模型设置为编辑模式,转换时间可缩短大约3/5。

此外,因为在模型转换过程中仅会将当前转换节点设置为编辑模式,将其他节点设置为浏览模式,可实时释放电脑内存,理论上可以支持任意大体量模型的转换。

综上,本文提出的CATIA V6模型轻量化转换方法具有较好的压缩比,对大体量模型均能顺利导出,并且转换速率和转换性能均较为理想。

3.3 模型应用测试

模型轻量化转换的最终目标是全生命周期应用,因此轻量化模型能否进行工程项目应用也是转换成果评判的重要指标。

在该水利枢纽工程BIM基础服务平台中加载转换得到的轻量化模型,模型效果如图9所示。

将轻量化模型(见图9)与原始模型进行对比,验证模型信息的完整性。对比两图的模型结构树和几何特征,可以看到轻量化的模型组织结构及几何结构完整,没有发生变化;对比属性框,可以看到模型属性未发生丢失;对比模型外观,可以看到绘制信息也未发生改变。可以说明该轻量化方法不会丢失模型信息。

平台采用了LOD加载、异步加载、遮挡剔除等多种策略综合提高模型的加载速率。通过测试,可达到模型初始加载时间小于3 s的技术指标。在平台中可以对模型进行视图变换、视点创建、标签创建、模型爆炸、工程测量、模型剖切、碰撞检测、版本对比、场景漫游等操作。下文将分别以模型爆炸、工程测量、模型剖切为例,对轻量化模型的应用场景展开描述。

(1) 模型爆炸。主要用于模型细节查看。模型爆炸通过计算构件与中心点之间的拆解方向,将所有模型构件与中心点之间的间距沿拆解方向放大,实现对模型内部构件的分解表达。模型爆炸效果见图10(a)。

图10 轻量化模型在水利枢纽工程BIM基础服务平台中的应用展示Fig.10 Application demonstration of lightweight models in BIM platform of a hydraulic hub project

(2) 工程测量。平台实现了距离、角度、高程、坐标、坡度等多种测量手段。例如距离测量是通过点选两个点,获取两点坐标并计算两点之间的直线距离。坡度测量则通过点选某个几何面,计算面的坡度。工程测量效果见图10(b)。

(3) 模型剖切主要用于将模型剖开以展示模型的内部构造,进行精细化查看。剖切通过指定点、线或面对模型进行切割,绘制两遍。第一遍直接绘制模型,在片元着色器中去掉剪切掉的像素。第二遍绘制切口,原理是绘制一个较大的模型,把它投影到切口面上覆盖住切口,利用缓存把多余的像素滤掉。模型剖切效果见图10(c)。

由以上得知,本文的轻量化方法可以较大程度实现模型的压缩,减少资源传输量,在提高模型加载效率方面有较好的效果。转换后得到的轻量化模型结构、几何信息不会发生改变,同时模型的各类非几何信息可以实现完整同步的转换。对于各种体量的模型均可顺利导出,并且转换速率和转换性能较为理想。模型轻量化转换之后可以在可视化平台中正常加载及应用。

4 结 语

针对CATIA V6模型在工程全生命周期中的应用不广泛的问题,本文提出了一种基于CATIA V6的BIM模型轻量化转换方法。首先定义了一种轻量模型结构,可存储结构数据、几何数据、属性数据3部分信息。利用CATIA二次开发技术,对模型数据进行解析、提取和存储,通过“参考-实例”的逻辑结构建立模型构件之间的引用关系,形成轻量格式的模型文件。测试结果表明,该轻量化方法能在完整提取模型结构和信息的情况下,获得较高的压缩比,转换速率和转换性能均较为理想。轻量化模型支持下游平台的应用,对于提升模型的数字化应用水平具有极大的借鉴意义。

目前本文对于CATIA V6模型的轻量化转换已经达到了较好的效果,但由于三角面片化的处理,导致模型的几何精度有所降低,不适合在高精度的模型测量或分析计算场景中应用。在未来的工作中,可以在提高几何精度等方面开展进一步研究。

猜你喜欢

面片轻量化实例
汽车轻量化集成制造专题主编
初次来压期间不同顶板对工作面片帮影响研究
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
甜面片里的人生
瞄准挂车轻量化 锣响挂车正式挂牌成立
基于三角面片包围模型的数字矿山技术研究
用户:轻量化挂车的使用体验
青海尕面片
完形填空Ⅱ