1. 引言
BIM模型作为城市三维场景重要的数据来源,能够提供建筑物丰富的几何信息、物理信息和语义信息。WebGL是一种全新的3D绘图协议,将WebGL与三维GIS结合应用,使得人们在网页中浏览三维场景成为了可能,BIM与GIS是一种互补关系,二者的结合能够兼顾整体宏观浏览和局部微观查询的优势 [1] [2] [3] [4]。然而,BIM与GIS属于两个完全不同的领域,难以直接在GIS场景中应用BIM,要想实现二者的融合就需要将BIM模型转换为GIS数据模型,同时从Web服务器端解析BIM相关信息,并通过Ajax技术在浏览器端读取相关属性参数最终完成模型的加载与可视化。
目前,有关BIM与GIS场景的融合已经开展了诸多研究,例如,BIM + GIS集成,可视化性能优化,将BIM与GIS融合,进行道桥施工、交通规划和水利工程施工等,但这些研究主要是在离线环境下对BIM进行展示,相关信息难以实现实时共享,不同用户之间BIM信息难以进行交换 [4] [5] [6] [7] [8]。
在此背景下,本文以IFC (Industry Foundation Classes)标准BIM数据为研究案例,首先将BIM模型转换为GIS可以接受的数据交换格式,然后在WebGL技术的支撑下,采用开源三维引擎Cesium实现了BIM数据在网络环境下的可视化表达。
2. 相关技术基础
2.1. WebGL技术
WebGL是基于Web的图形语言,WebGL是开源开放的,是一项基于HTML5 Canvas部分的延伸,被用在网页上绘制和渲染复杂的3D图形,同时允许用户与之进行交互的Web技术标准 [9]。WebGL直接在HTML5新元素Canvas中绘制图形,调用图形库提供的基本元素绘制函数、基本变化及投影变换,并提供硬件加速渲染 [10]。目前主流浏览器都已经支持WebGL标准的Web3D应用,包括Google Chrome、Mozalla Firefox、Apple Safari、Internet Explorer、百度浏览器等。
2.2. BIM模型
BIM (Building Information Model),又被称为建筑信息模型,是基于一般建筑工程项目中的多源信息,构建的虚拟建筑模型,其主要通过数字化仿真技术来表达建筑物的相关几何信息、物理信息和语义信息,是一种能够有效的表达建筑物理与功能性信息,及其周围环境的数字表达方式 [11]。BIM可以贯穿建筑工程整个生命周期,包括前期策划、方案设计、施工过程、运营维护等阶段。如BIM建筑模型可以为项目设计人员和实施人员提供建筑空间参照,且BIM建筑模型的更新速度也非常重要。
2.3. IFC标准
IFC (Industry Foundation Classes)是一项被广泛用于建筑物信息表达、交换与共享的BIM通用国际标准 [12]。IFC是目前发展最快的BIM概念模型,其具有多种表达方式,例如工程设计、分析应用等,拥有十分丰富的建筑构造信息、几何信息和语义信息 [13] [14]。然而,无论是数据格式还是时空基准,IFC标准的BIM模型与GIS场景是孤立的,这也是BIM与GIS融合必须要解决的难题。IFC由许多Schema所组成,IFC的Schema按照面向对象的观念及原则,每个层级的类别可参照同一层级或较低层级的类别,但是不能参照较高层级的类别。
3. 方法
3.1. 总体研究思路
本文总体研究思路如图1所示。以IFC格式的标准BIM数据为研究对象,首先采用自上而下的方式对IFC数据进行解析,得到BIM模型的几何信息和语义信息,其次进行坐标转换和模型重构,生成具有地理坐标的BIM模型,最后进行顶点着色和渲染,并且在三维地理场景中进行展示。
3.2. IFC独立坐标与世界坐标转换
由于IFC通常采用的是独立坐标系,而GIS背景下的地理场景通常采用的是世界坐标系,所以要实现IFC标准的BIM模型到地理场景中的融合展示,均需要进行坐标转变,即将BIM的独立坐标系转为世界坐标系。在本文中主要采用公式(1)实现:
(1)
其中,向量W表示BIM模型在地理场景中的世界坐标,向量I表示IFC中对象的独立坐标,M表示坐标系旋转矩阵, 表示平移量。
3.3. IFC模型转换及生成
IFC模型转换过程主要包括两个部分:几何数据转换和属性信息转换。首先采用扫描法将IFC实体模型转换为表面模型,并进行三角形格网划分,然后对冗余信息进行抽象化和过滤化处理,保留下有用的语义信息。然后以模型的ElementID为基础,将属性数据库与ID连接,完成同类型字段自动匹配,最终实现模型数据和属性信息的一一对应。
3.4. 基于WebGL的BIM模型展示
本文采用B/S (Browser/Server)架构来实现网络环境下BIM数据的可视化展示,在浏览器端存储DOM、DEM和BIM等数据,浏览器端和服务器端通信基于HttpRequest协议和Ajax技术实现,用户通过浏览器端发起请求,服务器端对请求进行解析并反馈BIM数据,最终在浏览器端实现BIM模型和三维场景的实时渲染与交互分析。详细思路如图2所示。
![](//html.hanspub.org/file/23-1541994x11_hanspub.png)
Figure 2. The visualization of BIM based on B/S structure
图2. 基于B/S架构的BIM可视化示意图
4. 应用案例
4.1. 实验数据
本文选择的实验数据是由BIM官网提供的IFC格式模型,该实验数据模型主要包含屋顶、窗户、墙、门和地板等基本的建筑构件,如图3所示。
![](//html.hanspub.org/file/23-1541994x12_hanspub.png)
Figure 3. IFC model building elements
图3. IFC模型建筑要素
4.2. 开发环境
1) Cesium环境搭建
在本文中选择Cesium. V.1.45作为渲染引擎,同时安装了Node.js v6.11.2搭建Web服务器,端口号设置为:8080,采用命令Node server.js启动服务器,结果如图4所示。Cesium是一个用来显示三维地球和地图的开源库。它可以显示海量三维模型数据、地形高程数据、影像数据、矢量数据等等。Cesium支持多种数据格式,高程数据支持STK格式,三维模型数据支持GLTF格式,三维瓦片模型数据支持3D Tiles格式,影像数据支持WMTS格式等。
![](//html.hanspub.org/file/23-1541994x13_hanspub.png)
Figure 4. Virtual globe of Cesium in Web environment
图4. Web环境下Cesium虚拟地球
2) BIM数据环境搭建
以BIMServer为基础,安装JDK (Java SE Development Kit)和JRE (Java Runtime Environment),并配置环境变量,然后启动BIMServer Starter,并在浏览器中登陆BIMServer和加载IFC格式的BIM数据,加载结果如图5所示。
![](//html.hanspub.org/file/23-1541994x14_hanspub.png)
Figure 5. IFC model building elements in BIMserver
图5. BIMserver中的IFC模型建筑要素
4.3. 结果展示
原始的IFC格式的BIM模型是一种建筑模型数据,并不属于地理数据,所以无法在Cesium虚拟地球上进行可视化,本文通过坐标转换和模型重构,生成有地理参考意义的CityGML模型,然后使用3D CityDB Importer/Exporter将CityGML模型所涉及瓦片数据信息和相应的模型数据,以外部JSON文件的格式输出,同时在前端解析JSON文件并重新绘制BIM模型,则可在浏览器端实现BIM模型在三维场景中的展示。最终结果如图6所示。
![](//html.hanspub.org/file/23-1541994x15_hanspub.png)
Figure 6. The fusion visualization of BIM and geographical scene
图6. BIM与地理场景融合展示
5. 结语
BIM是智慧城市发展的重要组成部分,本文以IFC标准的BIM模型为基础,在WebGL技术的支撑下,提出了网络环境下BIM模型三维可视化方法。首先,对相关技术基础进行了详细介绍,其次探讨了IFC独立坐标系与世界坐标系转换、IFC模型转换和生成及基于Cesium的BIM模型展示等技术,最后选择了一个标准IFC格式的BIM模型开展了试验数据,试验结果表明:本文方法能够实现BIM模型在三维场景中的融合可视化展示,可以为网络环境下大规模BIM数据的高效展示提供相应技术参考。