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所示。
Figure 2. The visualization of BIM based on B/S structure
图2. 基于B/S架构的BIM可视化示意图
4. 应用案例
4.1. 实验数据
本文选择的实验数据是由BIM官网提供的IFC格式模型,该实验数据模型主要包含屋顶、窗户、墙、门和地板等基本的建筑构件,如图3所示。
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格式等。
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所示。
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所示。
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数据的高效展示提供相应技术参考。