第一作者:刘北胜(1984—),男,北京市人,副研究员,博士. 研究方向为BIM及工程建设信息化.email:liubeisheng130@hotmail.com.
利用BIM(Building Information Modeling)技术进行工程建设的精细化管理需要实现三维BIM模型的在线展示及交互操作.传统的三维图形可视化技术虽然能够实现模型展示,但存在模型文件格式兼容性差,对终端设备硬件要求高,缺少必要的交互功能等问题.针对这些问题进行系统分析,提出了一套基于云渲染技术的三维BIM模型可视化解决方案.其中包括源模型文件轻量化转换技术,基于HOOPS的图形引擎开发技术,以及基于云渲染的大体量模型浏览器展示和交互技术.通过系统研发实现了主流建模软件Revit、Catia、Microstation、Tekla模型源文件的轻量化转换,以及基于云渲染的图形引擎系统,并在北京至张家口铁路工程建设项目中进行了验证.
The use of BIM for fine engineering project management requires online display and interaction of 3D BIM models. Although traditional 3D graphics visualization technology can display models, there are still some problems such as poor compatibility of the model file format, high hardware requirements of devices and lack of necessary interactive functions. In order to solve these problems a cloud rendering based 3D BIM model visualization solution is proposed. The solution includes BIM model lightweight conversion technology, HOOPS based graphics engine development technology, cloud rendering based large model display and interactive technology. Through the research and development of the system, BIM models designed using Revit, Catia, Microstation, Tekla etc. are converted into light-weighted formats, and a cloud rendering based graphics engine system is developed and verified in Beijing to Zhangjiakou railway project.
随着BIM建筑信息模型技术在工程建设领域中的应用, 逐步改变了传统工程项目信息的组织和表达方式.在没有BIM的时代, 工程项目信息大多以离散的方式进行组织并以二维图表的方式展现给用户.在基于BIM的工程项目管理应用中, 各种项目信息通过统一的编码与三维BIM模型关联起来, 用户通过与三维模型进行交互来获取所需的信息, 这些信息再通过三维模型更加直观地展现给用户[1].由此可知, 三维BIM模型可视化技术是基于BIM的工程项目管理应用的核心技术支撑.
文献[2, 3]应用OpenGL接口, 通过对鼠标的二维位置变换, 实现三维模型的平移、缩放、旋转操作, 但是在基于BIM的工程项目管理应用中, 用户需要与BIM模型进行多种复杂的交互操作, 如不同粒度的模型/构件检选、模型剖切、标记、测量、漫游等.使用这些图形引擎提供的API(Application Programming Interface)编程接口进行复杂交互功能开发难度较高, 需要投入较多的人力且开发周期较长.
文献[4, 5]提出一种集成了网格重建、去噪、简化等步骤的一体化三维图形文件格式转换方法, 可将一些标准的三维图形格式转化成基于网格的轻量化文件格式.但是, 这种方法只能处理一些通用的三维图形格式, 例如3DS、OBJ、OFF等.然而BIM模型大多是使用专用的建模软件(例如Revit、Catia、Microstation、Tekla等)创建, 不同建模软件创建的BIM模型都基于其专有的格式, 仍需要将各种建模软件创建的BIM模型转化为一种统一的、图形引擎可以识别和处理的格式.另外, 建模软件创建的BIM模型中包含许多冗余的设计信息, 为了提高模型的传输和加载效率, 需要将模型中有用的装配信息和属性信息提取出来进行结构化存储并将几何信息转换成一种体量相对较小的轻量化格式.
文献[6, 7, 8, 9]利用WebGL技术实现了异构的CAD模型跨平台Web浏览器显示, 但是采用这种方式进行三维图形渲染时需要消耗大量的终端设备资源, 随着三维模型面片数的增加, 渲染模型消耗的硬件资源会迅速增长.当模型的体量超过用户终端设备的承受范围时, 会出现程序卡死或崩溃的现象.在BIM应用中, 经常需要展示大体量的三维模型, 这些模型在专业的图形工作站中展示时也会经常出现卡顿的现象.然而, BIM应用的使用环境经常是在施工现场, 很难要求用户配备专业的设备, 这就需要有一种能够支持在配置较低的终端设备甚至是移动设备上流畅的展示大体量三维模型的技术以满足BIM应用的特殊需求.
综上所述, 传统的三维图形渲染技术虽然可以实现图形展示功能, 但不足以完全支持基于BIM的工程项目管理应用对三维BIM模型的展示要求.为了解决上述问题, 本文作者通过模型设计插件实现了BIM模型源文件的轻量化转换, 利用HOOPS三维图形应用开发BIM图形引擎, 并部署到高性能图形服务器上对三维模型进行渲染, 采用虚拟桌面的方式将模型展示区域以图片流的形式发送到Web浏览器上, 并通过消息服务实现了图形展示区域、用户及BIM应用之间的信息交互.
为了解决与三维模型的展示与交互以及BIM模型专有格式的支持问题, 本文采用专门为BIM定制的图形应用集成开发套件HOOPS Visualize进行三维图形引擎开发.HOOPS Visualize作为Dassault、Autodesk等主流BIM模型设计软件的图形技术支撑, 提供丰富的BIM交互开发功能以及三维BIM图形文件的格式转化功能.
HOOPS Visualize建立在OpenGL、Direct3D等图形渲染内核之上, 实现了更加高级的图形功能(如图形高级渲染、动画、动态干涉检查、图形高级操作、显示性能优化等).可以集成到微软的Visual Studio开发环境, 主要使用C++语言开发.通过调用HOOPS Visualize提供的API接口或者直接引用其类库中的图形操作类即可实现三维图形的渲染和交互操作.另外, HOOPS Visualize还提供Exchange组件, 可将BIM模型的几何信息和属性信息转化并存储成HOOPS专用的轻量化模型文件格式hsf(Hoops Stream Format).
通过设计软件二次开发可将设计源模型中的几何信息导出成通用格式的三角面片图形数据, 并可通过设计软件提供的二次开发接口将模型中各个构件的属性数据读取出来, 之后使用HOOPS Exchange组件中提供的API接口建立轻量化模型文件的数据结构并最终生成hsf文件.以Bentley公司的Microstation建模软件为例, 模型轻量化程序架构如图1所示.
源模型文件的轻量化转换过程如下:
1)调用DGN Direct组件提供的接口将源模型文件中的第1个构件(此处的构件为模型实体结构分解的最小单元)的几何信息导出成三角面片数据(三角面片数据由若干个顶点坐标和构件的空间坐标组成); 2)调用HOOPS Exchange组件的API接口, 创建一个模型片段, 将构件的几何信息保存到片段中; 3)调用DGN Direct组件的接口将构件的属性数据读取出来, 然后调用HOOPS Exchange模块的接口将属性数据保存到之前创建的片段中; 4)调用DGN Direct组件提供的接口将源模型文件中的下一个构件的几何信息导出成三角面片数据并重复步骤2)和3), 直到模型中的所有构件的几何信息和属性数据都导出到对应的片段中.5)根据实际应用需求对片段进行分组, 例如对于桥梁的BIM模型可将一个桥墩包含的所有构件片段分成一组, 组成一个桥墩片段, 再将所有的桥墩片段组成一个下部结构片段.同理可将一跨梁包含的所有构件片段组成一个梁片段, 再将所有的梁片段组成一个上部结构片段.
至此, 源模型文件就被转化成一个轻量化的hsf模型文件.hsf文件可以被基于HOOPS开发套件开发的图形引擎加载展示并进行丰富的交互操作.另外, 设计源模型一般采用精确的数学表达式表达模型的几何信息, 因此该模型在转化为三角面片数据后, 几何外形精确但面片数量庞大, 一般无法满足Web浏览器实时渲染的要求, 必须通过简化算法精简模型[10, 11].通过分析可知, 参数化的实体模型面片化后, 三角面的排列顺序具有一定的规律, 根据这个特点, 可将网格数据分为:面上的点都在边界线上, 面上的点不全在边界线上.对于第1类网格数据, 只需要对边界上的点进行简化即可.对于第2类的, 需要从边界线开始, 对原始网格数据进行从左向右, 自下至上逐层简化.
由于hsf文件只包含必要的几何信息、属性数据及模型拓扑结构数据, 极大地减小了模型的体量, 降低了模型渲染的硬件资源消耗, 增强了模型展示和操作的流畅度.采用类似的方式可将主流设计软件(包括Revit、Catia、Microstation、Tekla)设计的源模型文件转化成轻量化文件格式, 解决了模型源文件格式不统一的问题.
采用HOOPS开发套件开发的图形引擎程序架构如图2所示.各模块功能独立, 可相互操作.
1)3dGS.
3dGS负责三维图形渲染和数据管理任务, 它屏蔽了不同底层图形渲染内核(OpenGL、DirectX等)的接口, 向外提供一套统一、直观、便于调用的高级图形操作接口.这些接口封装了一系列3D图形数据处理和优化算法.这些算法可用于实现2D和3D图形数据的存储、创建、编辑、操纵、查询、展示和打印等操作.
2)MVO.
MVO是独立于平台或用户界面的C++类库, 它能够实现大部分三维模型交互功能, 例如模型查看、创建、注释、操纵、拣选等.通过引用这些类可以实现不同的业务逻辑, 从而使图形引擎能够适应大型图形应用程序的开发需要.
3)Stream.
Stream模块提供给hsf格式文件的输入/输出控制功能, 它将定制化的hsf格式文件或数据流输入到3dGS模块, 或将hsf格式文件或数据流从3dGS导出.
4)GUI.
GUI(Grrophic User Interface)模块用于将图形引擎的各模块与用户界面相集成.用户在用户界面上进行的操作由GUI模块分配到相关的模块进行处理.
用户操作的处理流程为:①用户触发的事件由用户界面捕获并插入到事件队列; ②HOOPS GUI模块对事件队列进行监控并将事件分发到HOOPS MVO、HOOPS Stream或HOOPS 3dGS模块; ③HOOPS MVO模块调用HOOPS 3dGS模块进行相应的数据处理与信息交互.
基于HOOPS开发的三维图形应用如图3所示.该应用程序可以加载和显示轻量化的hsf格式三维BIM模型文件(图3中显示的是一部分桥梁BIM模型), 并且可实现视角切换、渲染模式切换、构件检选、颜色/透明度/消隐设置、剖切、漫游等符合BIM应用需求的复杂交互功能.
为了使BIM管理信息系统具有B/S架构系统的优势, 要求用户能够在浏览器上浏览和操作BIM模型.但是目前浏览器原生的编程语言如JavaScript并不支持三维图形渲染内核API的直接调用.一种解决办法是通过使用微软组件对象模型(Component Object Model, COM)技术将图形引擎程序封装成一个ActiveX控件[12].用户在浏览BIM模型之前需要先下载ActiveX控件并在浏览器上注册该控件, 之后当用户第1次打开BIM模型时, 需要先将模型文件下载到本地缓存, 下载完成后就可在浏览器上观看和操作BIM模型.采用这种方式虽然在一定程度上解决了浏览器展示BIM模型的问题, 但是也带来了一些问题, 归纳如下:
1)大部分主流浏览器例如Chrome、Firefox、Safari等都不能很好的支持ActiveX控件加载和运行; 2)不支持大体量模型的加载和展示.通过实验, 当模型文件超过80 M时, 加载模型可能会导致浏览器崩溃; 3)用户在第1次浏览模型之前需要将模型下载到本地进行缓存, 当模型文件较大时需要一段很长的等待时间; 4)在浏览模型之前需要下载并注册ActiveX控件, 增加了用户操作的复杂度.由于一些操作系统安全性限制, 可能会阻止ActiveX控件的加载; 5)当在浏览器上移动或遮挡部分模型展示区域时, 会导致模型展示区域闪烁, 降低用户体验.
为了解决这些问题, 本文提出基于云端渲染的三维模型展示和交互解引擎(简称云引擎).在此方案中, 图形引擎程序被部署在服务器上, 模型的渲染和展示都在服务端完成, 并不占用用户终端设备的硬件资源.图形展示区域以图片流的形式发送到前端浏览器.当用户在浏览器上点击图形展示区域操作模型时, 鼠标点击的位置坐标及该用户的识别信息会通过消息队列(Message Queue, MQ)发送至服务端.服务端上的消息处理程序接收到鼠标点击事件后会在图形引擎上的相应位置完成点击操作, 操作的结果会以图片流的形式发送到该用户的前端浏览器.另外, 图形展示区域和BIM应用的用户界面也可通过消息队列进行交互.例如, 当用户在浏览器页面上点击模型结构树上的某个节点时, 该节点对应模型的全局唯一标识符(Globally Unique Identifier, GUID)、用户操作类型以及用户识别信息会发送至服务端上的消息处理程序进行处理, 即根据操作类型在用户选中的模型上完成操作, 然后把操作结果以图片流的形式返回到该用户的浏览器页面.云渲染引擎的系统架构如图4所示.
云引擎的客户端为一个运行在浏览器上的三维图形应用, 它包含三维模型展示区域和消息处理程序两部分.云引擎的服务端包含一个远程虚拟化服务程序、图形引擎和消息处理程序.在展示三维模型之前, 客户端会给服务端的远程虚拟化服务程序发送图形引擎程序ID(服务端会为每个在线用户开启一个图形引擎程序)、认证信息以及用户信息(包括用户地址等)并且建立服务端与客户端之间的连接.三维模型展示区域为一个浏览器页面上的iFrame, 用于接收远程虚拟化服务发送过来的图片流并展示.客户端的消息处理程序用于和服务端的消息处理程序进行通信, 发送用户操作事件、操作类型以及模型或构件的GUID等信息并接收服务端的反馈信息.服务端的消息处理程序在接收到用户的操作信息后会控制图形引擎程序完成相应的操作并将接收到的反馈信息发送给客户端.图形引擎程序为本文1.1节中描述的基于HOOPS技术开发的图形引擎.远程虚拟化服务用于图形引擎程序管理、用户认证管理、用户连接管理以及向客户端发送图片流.
采用1中介绍的模型轻量化插件可将源模型文件转换成轻量化的hsf文件, 由于去掉了不必要的设计信息, 极大的减小了文件的体量.而且通过轻量化转换可使不同设计软件创建的模型文件转换成统一的格式, 更加便于设计成果的传播和共享.目前主流软件的源模型文件进行轻量化转换后的结果对比如表1所示.
![]() | 表1 源模型文件轻量化转换结果 Tab.1 Source model file lightweight conversion results |
通过表1可得, 目前所有主流软件创建的源模型均可以转换成统一格式的轻量化模型, 源模型文件在经过轻量化转换以后, 体量缩小为原来的5%~60%, 在加载和展示时能够减少设备资源的占用.
由于模型的渲染是在服务器上完成的, 所以本系统并不需要对终端设备的硬件性能做要求.当需要展示大体量模型或需要支持高用户并发数量时, 只需增加服务器的图形处理能力.另外, 由于在用户浏览器上展示的模型实际上是图片流, 并不需要插件支持, 所以该系统具有跨浏览器兼容的特性.用于验证本系统的硬件设备配置如下:属性数目为356 377条; 构件数目为10 916个; 轻量化文件大小为100.04 MB; 刷新率为60 Hz; 显示分辨率为1366× 768; 网络带宽为10 MB/s; 浏览器采用Google Chrome.服务器配置为NVIDIA M6000, Windows Server 2013, Intel Xeon E5506× 2, 16 GB.终端设备配置为Windows 10家庭版, i7-6500U 2.5 GHz, 8 GB.
采用云渲染引擎对大体量三维模型进行渲染和展示的结果如图5所示.通过实际验证, 当展示由超过10万个构件组成的大体量模型时, 图形展示区域仍然能够保持接近60 Hz的刷新率, 网络带宽占用的峰值仅为60 KB/s.另外, 云引擎还实现了用户、图形应用和模型之间的流畅交互操作.
采用不同类型的技术路线进行BIM模型的WEB浏览器展示的结果分析如表2所示.
本文提出的基于云渲染的三维BIM模型可视化解决方案被应用于基于BIM的北京至张家口铁路工程项目建设管理平台中.京张八达岭隧道BIM模型采用Bentley公司的Microstation软件设计, 模型包含十几万个构件, 三角面片数量达到千万级别, 采用云渲染图形引擎可保证BIM模型在WEB浏览器上流畅展示(即模型展示区域的刷新率达到60 Hz左右), 如图6所示.
![]() | 表2 技术路线对比 Tab.2 Comparison of technical routes |
另外, 云渲染图形引擎还支持模型与用户操作界面的交互、模型剖切、爆炸图展示及标记等操作功能, 如图7所示.当用户选中模型上的某个构件时, 与该构件相关的信息即可在平台页面上展示, 如图7(a)所示; 当用户选择模型剖切方式及需要剖切的位置后, 即可展示出相应的模型剖面, 如图7(b)所示; 当用户选择爆炸图模式时, 可将模型中的各构件分解展示, 如图7(c)所示; 另外, 用户还可以在模型展示区域上进行标注, 如图7(d)所示.
1)通过BIM模型设计软件二次开发并集成HOOPS Exchange组件实现的源模型文件的轻量化转换, 解决了源模型文件格式不统一的问题, 并且减小了模型的体量, 有利于BIM模型的传播和共享.
2)基于HOOPS技术研发出一套BIM图形引擎, 实现了BIM模型的展示和丰富的交互操作功能.
3)提出了基于云渲染技术的大体量模型浏览器展示解决方案, 并研发出一套云渲染引擎, 实现了大体量模型浏览器展示和交互操作.目前云渲染引擎已应用于北京至张家口铁路工程BIM管理平台、铁路工程信息模型库管理系统等多个大型BIM应用系统中.
在今后的工作中, 拟将云渲染引擎与ActiveX、WebGL等技术结合, 当展示大体量模型时使用服务端的硬件资源进行图形渲染, 当模型体量较小且无法获取稳定的网络连接时, 使用户终端设备硬件资源进行图形渲染, 确保BIM应用系统能够适应多种复杂的现场环境.
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|