当前位置:广昱文档网 >专题范文 > 公文范文 >

基于IFC标准的面向需求的动态加载方法

时间:2023-10-09 17:00:04 来源:网友投稿

史瑞昌,秦 琳,朱 一

(中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)

建筑信息模型(BIM,Building Information Model)已成为工业互联网在智慧建筑方向的研究热点,特别是BIM软件之间的数据交换技术和Web渲染技术备受相关研究人员的关注。BuildingSMART[1]提出并成为BIM数据交换国际标准的工业基础类(IFC,Industry Foundation Classes)标准[2],进一步加快了BIM应用的研究与成果落地。Web端BIM大场景应用是未来发展趋势,IFC标准在实际应用中存在以下问题:IFC模型文件数据并非直接可渲染数据,为满足渲染要求,其数据需要经过转换处理;
BIM场景数据体量较大时,受制于网络带宽、浏览器性能、网页渲染技术等多方面因素,Web端BIM应用的用户体验不佳。

为解决上述问题,近年来的研究主要集中在IFC模型文件数据解析与转换优化、BIM可视化应用等方面。在IFC模型文件转换方面,刘强等人[3]提出一种基于键值缓存的IFC模型文件Web应用技术,将IFC模型文件解析成JSON格式,为数据在网络传输提供基础;
徐照等人[4]提出一种基于WebGL的渲染方法,开发了IFC-OBJ转换工具,但未考虑OBJ模型文件不可分割、过大时加载时间过长,甚至无法完成加载等问题。BIM可视化应用方面,Hong-Lei Lu等人[5]在Scully T等人[6-7]提出的大模型分割策略基础上考虑语义划分,提出了基于语义对IFC大模型划分,实现构件语义划分并对模型进行分割后,利用空间索引完成场景加载,其划分策略依赖语义数据集,数据集收集和语义划分模型训练实现较为复杂,且需要为特定场景定制算法模型;
李柯等人[8]提出云边页协同的Web端BIM多粒度在线可视化框架,定义构件兴趣度,在复杂遮挡场景中,效果不佳;
刘小军等人[9]提出一种面向手机网页的大规模Web端BIM场景实时漫游算法,该算法从构件实例冗余、构件及空间混合索引、多粒度数据动态装/卸载策略3个方面对场景进行管理和加载,其空间划分剔除算法,仅适合遮挡关系较强的构件,需要提前设定遮挡物,设定遮挡物工作量较大,且通用性受限;
BIMServer[10]为开源的IFC模型文件处理、Web端BIM场景加载工具集,作为BuildingSMART推荐的工具集,将IFC模型文件层次关系、几何特性、材质、属性等数据分开加载,在一定程度上解决了BIM大场景应用问题,但未考虑构件加载优先级。基于上述研究,本文提出基于IFC标准的面向需求的动态加载(IFC based Demand-Oriented Dynamic Loading,DODL)方法。对IFC数据进行解析转换,将层次关系、几何特性、材质、属性等数据拆分存储,在原数据基础上,拓展辅助场景加载的字段;
为优化Web端BIM大场景加载,提出基于GPU加速实现构件需求计算方法,计算需要加载的构件集合,并利用几何相关性设计构件加载优先级,计算构件加载顺序;
通过网络服务,完成BIM大场景加载。

根据铁路BIM应用实际情况,BIM应用流程可分为3部分,如图1所示。

图1 铁路BIM应用流程

1.1 数据源

建模人员使用CATIA等设计软件完成三维模型后,导出IFC格式模型数据,为数据共享和应用奠定基础。

1.2 数据处理

读取IFC模型文件,解析层次关系、几何特性、材质、属性等数据,重点处理无法直接渲染的拓扑几何,并将结构化JSON格式数据存储在数据库中,为后续场景加载提供支撑。IFC模型文件无法直接用于计算机图形渲染,需要对其进行解析和处理,此过程耗时且对硬件资源要求较高,为减少数据处理时间,可利用云服务器资源完成此过程。

1.3 数据应用

搭建Web应用,Web端通过网络服务,加载BIM场景,结合铁路业务开展应用。

2.1 处理过程

IFC模型文件处理即是对IFC模型文件解析、转换、拆分、存储的过程,该过程主要分为2部分:

(1)使用python脚本,制定特定类型正则表达式,过滤IFC.exp文件中的基本类型、枚举类型、select类型、实体类型,并根据类型定义与继承关系,生成可用于编译的CPP文件,为IFC模型文件读取与解析奠定基础;

(2)读取IFC模型文件,根据CPP文件,在运行时动态生成IFC实例对象,通过查询IFC实例对象,将层次关系、几何特性、材质、属性等数据进行拆分与转换,并将结果存储到数据库。

2.2 拆分过程

IFC实例对象拆分过程如下:

(1)为构建模型层次关系,以IfcProject实例对象为入口,筛选IfcProduct类型实例对象,区分出空间结构元素和非空间结构元素(构件节点),将空间结构元素构造为组节点对象,处理节点属性和局部矩阵等信息,递归处理空间结构元素包含的节点和关联的节点,直至非空间结构元素的节点;

(2)对非空间结构元素处理,判断其包含的Items属性的实例类型,分别处理几何、拓扑、映射、材质类型数据,几何和拓扑类型数据需要借助几何算法库Open CASCADE[11]实现几何、拓扑生成与网格剖分,进而构造叶子节点存储几何数据,并建立几何与叶子节点间的关联关系。

拆分后数据结构如图2所示。

图2中字段含义如表1所示。

表1 字段含义说明

图2 拆分后数据结构

在网络资源有限的情况下,BIM大场景无法通过一次网络请求完成整个场景加载时,有必要考虑构件的加载优先级。用户通过计算机外设与模型进行交互,定位到特定视角查看模型,用户视角范围内的模型构件即用户需求的构件,应具有较高加载优先级,需要优先完成加载。

3.1 基于GPU加速的构件需求计算

初始加载过程如下。

(1)根据模型标识,请求模型层次关系数据;
从网络加载层次关系;
根据层次关系中叶子节点的box字段,构建可用于渲染的辅助box网格。

(2)根据模型包围盒初始化视角,获取相机视锥参数,进而对场景进行视锥剔除,得到视锥内可见性构件集合。

(3)综合考虑效率与剔除精确性,采用WebGL 2.0接口,基于GPU对视锥剔除后集合box网格进行渲染查询,计算视锥体内box网格是否被遮挡。

(4)过滤出未遮挡构件集合,即需要加载的构件集合,根据构件几何唯一标识与优先级,完成加载。初始加载过程如图3所示。用户交互改变视角时,与初始加载不同,不需要网络请求模型、解析层次关系和构造可渲染box网格,只需要从视角剔除开始,加载未加载的构件数据。

图3 基于GPU加速的构件需求计算流程

3.2 基于几何相关性的构件加载优先级

构件自身的几何数据量比其他数据量大,因此,几何特性是影响构件加载优先级主要因素之一,例如,包围盒box的大小、复杂度等,其中,复杂度是指构件几何网格数据存储所占用的空间情况。本文层次关系定义中,bits字段可用于描述复杂度,单位为字节(byte)。因几何特性是影响加载优先级的主要因素,在设计构件加载优先级时,需重点关注几何特性。

几何相关性(CG,Correlation of Geometry)是构件包围盒体积与其复杂度的比值,表示为

公式(1)中,CG(ci)为构件ci的几何相关性;
bits(ci)为构件ci的复杂度;

volume(ci)为构件ci的包围盒box的体积;
CG(ci) 的物理意义为单位字节传输空间体积大小。

bits(ci)越小、 volume(ci) 越大,则CG(ci)越大,加载到的数据对最后渲染到屏幕的影响越大,对用户的视觉影响越大,因此,加载优先级越高;
反之,加载优先级越低。

具体计算方法如下:借助几何算法库Open CASCADE,以不被遮挡的构件集合作为输入,遍历所有构件,利用式(1)计算几何相关性,并根据计算结果对构件集合由大到小排序,得到有序的加载构件集合。基于几何相关性的构件加载优先级计算步骤如下。

步骤 1:输入无序构建集合C={ci,i=0, 1,…,M}。

步骤 2:若集合C中有元素ci,则取出;
若无,则结束。

步骤 3:查看ci剔除标识,若是,执行步骤 4;
若不是,则跳转到步骤 5。

步骤 4:计算ci的几何相关性。

步骤 5:得出c′i,插入、排序到集合C′。

步骤 6:重复Step 2,最终得到有序构建集合C′={c′j,j=0, 1,…,N}。

4.1 实验环境

为验证本文提出的DODL方法的可用性和有效性,设定BIM场景加载过程中评价指标,搭建实验环境。选取公开数据集Open IFC Model Repositor[12]中IFC模型文件作为实验样本,借助几何算法库Open CASCADE,进行仿真实验,并与使用BIMServer开源服务器平台加载的方法进行比较。使用3个不同的IFC模型文件,选取初始加载构件个数、内存占用和初始加载时间作为性能评价指标。实验使用的IFC模型文件信息如表2所示,图4(a)~图4(c)分别为3个IFC模型文件默认视角下的渲染效果。

表2 IFC模型文件信息

图4 实验用IFC模型文件默认视角下的渲染效果

实验软/硬件环境配置:Intel(R) Core(TM)i7-11800H 处理器,16.0 GB内存,NVIDIA RTX3060显卡,64 bit Windows 11专业版21H2系统,Chrome版本为106.0.524 9.103,对比组BIMServer 的版本为1.5.182。

4.2 初始加载构件数

初始加载构件数,即初始视角情景下,需要加载构件的个数,单位为个。3个IFC模型文件在DODL方法下初始加载构件数分别为1 252、2 178、4 547,相比BIMServer加载方法下的初始加载构件数5 786、7 637、27 958,分别减少了78%、71%、83%,如图5所示。实验结果表明,DODL方法可有效减少初始加载构件数。

图5 初始加载构件个数比较

4.3 占用内存

占用内存,即初始视角情景下,初始加载完成后,浏览器占用的内存,单位为MB。3个IFC模型文件在DODL方法下占用内存分别为125、156、346,相比BIMServer加载方法下占用的内存218、287、580,分别减少了42%、45%、40%,如图6所示。实验结果表明,DODL方法可有效减少初始加载时占用的内存。

图6 占用内存比较

4.4 初始化加载时间

初始化加载时间,即初始视角情景下,从网络请求开始至可见的构件加载完成时止,所用时间长短,单位为ms。3个IFC模型文件在DODL方法下初始化加载时间分别为2 641、4 631、8 867,相比BIMServer加载方法下的初始化加载时间13 105、77 656、41 853,分别缩短了79%、94%、78%,如图7所示。实验结果表明,DODL方法可有效缩短初始化加载时间,减少用户因场景加载而等待的时间,提高了用户体验。

图7 初始加载时间比较

本文研究IFC模型文件处理、面向需求的动态加载方法,提出基于IFC的面向需求的动态加载方法,在IFC数据拆分存储基础上,通过对视锥内构件进行过滤、排序,实现基于IFC标准的面向需求的动态加载。通过实验,证明了所提方法的可行性和可用性,可改善用户体验,也可推广至其他非IFC格式的模型文件加载铁路BIM的应用场景。

在Web端加载BIM场景过程中,仍存在需要进一步解决的问题,例如:IFC模型文件处理过程耗时较长;
模型场景加载的过程中,初始加载时受初始视角影响,不同初始视角下,加载构件数、初始加载时间、占用内存等均有不同。因此,今后将进一步研究缩短文件处理时间及最优化选取视角的方法。

猜你喜欢内存构件节点CM节点控制在船舶上的应用机械工业标准化与质量(2022年6期)2022-08-12Analysis of the characteristics of electronic equipment usage distance for common users国际眼科杂志(2021年9期)2021-09-15外部高速缓存与非易失内存结合的混合内存体系结构特性评测高技术通讯(2021年5期)2021-07-16基于AutoCAD的门窗节点图快速构建装备制造技术(2020年2期)2020-12-14“春夏秋冬”的内存当代陕西(2019年13期)2019-08-20建筑构件国际木业(2016年8期)2017-01-15建筑构件国际木业(2016年12期)2016-12-21建筑构件国际木业(2016年3期)2016-12-01建筑构件国际木业(2016年1期)2016-12-01抓住人才培养的关键节点中国卫生(2015年12期)2015-11-10

推荐访问:加载 面向 需求