1. 引言
随着城市的发展,各种各样的建筑也随之建起。这些建筑物造型各异,内部设备也千奇百怪,想要准确的表达建筑模型室内的数据,有方法存在效率过低、成本偏高,模型数据质量不佳等问题。更多情况下,除了直接进入室内进行室内测绘,多数方法都只能获得建筑物的表面模型,模型实际上仅仅是“空壳”,难以进入模型内部,更不论室内空间信息的查询和分析 [1] 。
BIM (Building Information Model,建筑信息模型)是随着信息技术在建筑行业中应用的深入和发展而出现的 [2] 。其精细程度高,包括几何、物理、规则等丰富的建筑空间和语义信息,可用来实现对工程全生命周期(设计、施工建造、运营、拆除)的数字化管理 [3] 。BIM模型的标准数据格式是IFC,所有BIM模型都可以转换为IFC标准数据文件输出 [4] 。
CityGML是基于OGC [5] 发布的另一个标准GML3 (Geography Markup Language 3,地理标记语言)开发的,最早是由德国柏林科技大学的Thomas H. Kolbe教授开始研究。CityGML充分考虑了区域模型中的几何、语义、拓扑以及纹理等信息,并且面向整个城市,定义了城市中各类地理对象之间的关系。对于室内外三维建模、数据共享具有非常重要的意义 [6] 。
目前,3DGI在室内表达的一个问题在于如何快速、低成本地获取可用于室内空间三维建模的数据。
将BIM模型作为数据源集成到3DGIS中,包括两种方式:即直接方式与间接方式 [7] 。无论是否遵循IFC标准,均可尝试通过直接方式将BIM模型转换成3DGIS能够使用的数据格式。曹国等 [8] 基于WorldWind三维地理信息浏览平台(NASA发布的开源地理科普软件平台),采用插件(Plug-in)的方式在WorldWind中添加了一个三维建筑漫游系统,实现了室内外场景的无缝衔接。然而,由于不遵循IFC标准的BIM模型本身就存在数据交换困难、语义信息不完整等先天不利于室内空间提取的缺陷;再者,IFC模型在其较早版本(IFC2x3)中就已有600多个实体定义以及300多个类型定义 [9] 。如何将蕴含丰富信息的IFC模型转换到3DGIS数据模型,是个非常艰巨的难题。
目前,无论是建筑领域还是GIS领域,大多数的研究热点都是集中于利用IFC和CityGML这两种各自领域提出的数据标准进行转换以及信息交流。如何制定以IFC为代表的BIM模型向3DGIS进行转换的规则,成为本文和今后研究的重点。针对目前相关领域对于BIM模型与3DGIS融合的研究,本文遵循CityGML标准,设计制定一套可行的流程方案,将IFC标准建筑文件转换成附带语义信息的几何模型,为进一步实现室内空间应用做好铺垫。
2. IFC与CityGML介绍
2.1. IFC文件
IFC标准是建筑行业信息化过程中必定会出现的产物,具有两个非常重要的特点:1.IFC标准是完全开放的;2.IFC是数据交换标准,用于异构系统之间交换数据、共享信息 [10] 。
IFC定义超过600个建筑实体以及超过300个抽象类型,共计逾900种定义 [11] 。构件种类繁多,构件与构件之间的空间关系异常复杂 [12] 。要想对IFC进行模型转换,就需要对建筑构件进行归纳分类,根据转换的实际需求,保留需要转换的几何类型与语义信息,去除在3DGIS领域不需要的信息,避免为转换增加难度的同时又降低转换的效率。
IFC建筑构件主要是在共享层中定义的,共享建筑构件以及共享建筑服务构件构成主要的构件实体与相关抽象类型所属超类。
共享建筑构件定义的实体数量总共为47个,可以大致归为14种类型。表1罗列了部分实体。
共享建筑服务构件定义的实体数量为31个。不过这些实体主要用于领域层内的暖通工程领域、建筑管理领域、防火管理领域等领域。这些领域有许多设备实体并不是3DGIS领域需要或者关心的内容,但也有一些可以为CityGML进入室内时提供一些实体结构的数据源。表2罗列了部分共享建筑服务构件定义的实体。
2.2. CityGML文件
CityGML是用以表达三维城市模板的通用数据模型。它定义了城市和区域中最常见的地表目标的类型及相互关系,并顾及了目标的几何、拓扑、语义、外观等方面的属性,包括专题类型之间的层次、聚合、目标间的关系以及空间属性等 [13] 。这些专题信息不仅仅是一种图形交换格式,同时可以将虚拟三维城市模型用于各种应用领域中的高级分析 [14] ,例如模拟、城市数据挖掘、设施管理、专题题查询等。
在很多层面上,室内空间区别于室外空间。在3DGIS进入室内的过程中,诸多基本概念、数据模型以及相关标准都需要重新定义才能符合室内空间应用的要求,而室内空间信息的形式、内容都与具体的应用类型息息相关。
建筑模块的实体定义在OGC发布的CityGML Schema中的building.xsd。表3罗列了抽象基类_AbstractBuilding的元素。
2.3. IFC与CityGML比较
从时间上来看,IFC的出生略早于CityGML。由于各自应用的领域不同,IFC与CityGML采用不同的策略进行何建模、语义表达等。IFC采用EXPRESS语言规范进行描述,语句更为紧凑,而CityGML遵循GML规范,语句繁琐但更容易让人理解,两种表示方法见表4。
3. 数据融合方法描述
IFC作为一种精细建模的三维模型,其精度可以认为与CityGML的LOD4层级一致,而CityGML其他LOD层级的数据精度要求都小于LOD4层级。因此,理论上IFC模型是可以分别转换为符合LOD1-LOD4各层级精度要求的CityGML模型的。下面针对LOD4层次模型进行介绍。
CityGML在LOD4层级进入室内进行真实表达,许多几何与语义定义都与其他层级不同,这个层级也是整个IFC-3DGIS转换最为关键同时也是最有难度的地方。图1为OGC发布的CityGML LOD4 demo数据。
如图1所示,从图中可以看到室内有一把红色座椅,代表可移动的家具。不可移动的室内设施在图

Table 1. IFC Shared Building Components List
表1. IFC共享建筑构件列表

Table 2. List of shared building service components
表2. 共享建筑服务构件列表
中没有明显表现。由于涉及到室内空间Room的提取与生成以及连通设施在不同边界面之间的逻辑归属(射击孔面),这一层级的转换要考虑许多层面的因素。IFC中有一个定义为IfcSpace的实体概念,是指建筑内外部具有特定功能或特别指定的空间区域,一般是与楼层相关联的。其与CityGML中的Room有相似的地方,但并非是同一个概念,也不能直接由IfcSpace转换生成Room。LOD4层级中内外墙、地板天花板等边界面要根据空间位置以及语义信息从IfcSlab、IfcMember以及IfcPlate中选择最为合适的进行转

Table 3. _AbstractBuilding Element list
表3. _AbstractBuilding元素列表

Table 4. Comparison of IFC and CityGML Data
表4. IFC与CityGML数据表达比较

Figure 1. CityGML LOD4 Model example
图1. CityGML LOD4模型实例
换获取。对应CityGML中IntBuildingInstallation,IFC中没有特意定义这种类型,只能根据具体的实体定义与语义信息来判断是否属于IntBuildingInstallation,例如IfcBeam、IfcColumn、IfcStair、IfcRailing以及IfcRamp等实体;而对于BuildingFurniture,IFC中将可移动的家具统称为IfcFurnishingElement。要注意的是,无论是IntBuildingInstallation亦或是BuildingFurniture,具体的数据类型为表5所示的AbstractiCityObjectType。表5说明了LOD4映射关系中相关的IFC实体与CityGML实体。
4. 实验结果展示
本文实验数据来自德国卡尔斯鲁厄理工学院(Karlsruhe Institute of Technology)用于科研的共享标准IFC数据。进行转换实验的IFC模型为两层民居“BIEN-ZENKER Jasmin-Sun”,模型在FZK Viewer中的可视化效果如图2所示。
本文采用OBJ格式保存转换后的模型。OBJ文件 [15] 的特点如下:
1. OBJ文件是一种非常标准的三维模型文件格式,非常适合在三维软件之间进行三维模型互导,目前常见的三维建模软件几何都支持OBJ文件的读写。本科研小组自主研发的三维GIS平台VirtualWorld

Figure 2. BZ IFC format visualization
图2. BZ IFC格式可视化效果

Table 5. IFC transition to CityGML
表5. IFC转换至CityGML
亦支持OBJ格式的导入与可视化;
2. OBJ文件是一种文本文件格式,相较其他几种常用三维模型格式,其结构简单,采用单纯的字典状结构排列,可以直接通过记事本等文本编辑器打开或编辑;
3. OBJ主要采用三角面片进行模型构建,这样的方式类似于IFC与CityGML中边界描述(B-rep),使得OBJ能够较真实地还原IFC模型的特点。最新的标准OBJ3.0除了支持三角面片为主的多边形(Polygon),还支持表面(Surfaces)、直线(Lines)以及自由形态曲线(Free-form-Curves);
4. OBJ文件不使用文件头来描述文件属性,但支持注释内容,以“#”开头。IFC模型中的语义信息可以作为注释内容添加入OBJ文件;
5. OBJ文件本身不含模型的颜色材质等信息,但可以扩展引用材质库(mtllib),材质库信息记录在后缀名为.mtl的同名文件中,材质库包含材质的漫射(diffuse)、光泽(specular)、环境(ambient)的定义值以及折射(refraction)、反射(specularity)、透明度(transparency)等其他特征,OBJ文件中可由关键字“usemtl”来制定材质库中的材质。
本文使用微软Visual Studio 2008开发平台并借助IfcOpenShell软件库,开发相应功能,实现将IFC文件按照CityGMLLOD4精度要求转换为遵循CityGML标准的三维模型。转换的流程如下:
1. 对IFC文件使用IfcOpenShell提供的解析函数进行数据解析;
2. 按照CityGML不同层级LOD的数据表达精度要求提取出符合LOD4精度的实体;

Figure 3. BIEN-ZENKER integrates visualization in VirtualWorld
图3. BIEN-ZENKER在VirtualWorld中集成可视化
3. 整理IFC实体的语义信息,在转换过程中根据LOD精度要求输出语义;
4. 输出附带语义信息的OBJ文件;
5. 输出的OBJ文件加载至本科研小组自主研发的三维GIS平台VirtualWorld进行集成可视化显示,对比转换前后的模型。
6. 在遵循CityGML标准完成对IFC模型的转换之后,将转换后的OBJ模型导入本科研小组自主研发的三维GIS平台VirtualWorld进行集成可视化实验。VirtualWorld除了支持基础地理数据(影像、矢量、地形)加载,还支持多种格式的三维模型、天地图公共服务查询、定位信息、实时视频接入、地下管网可视化等多源数据的集成。
图3为“BIEN-ZENKER”模型集成效果。为了表示内部转换结果,去掉了半扇房顶。通过对比图2和图3,可以看出,图二中的房屋模型,包括底座,墙体,屋顶,房梁,门以及内部家具全都在图3中有所体现,说明了两种格式模型的转换是成功的。
5. 结束语
本文基于IFC与CityGML两种标准,根据两种标准的特点,分析两种模型实体的映射关系,在遵循CityGML标准的前提下,制定可行的转换方案将IFC模型转换为符合CityGML标准的三维建筑模型并于3DGIS平台上集成可视化。实验证明,由IFC模型作为数据源,将BIM模型与3DGIS集成进行室内空间研究是可行的。3DGIS在走进室内的过程中,室内数据的获取是一个十足的挑战。IFC为代表的BIM模型对建筑细节进行详细的描述,理论上BIM模型能够为3DGIS提供高精度、低成本的室内空间数据源。
几何实体在两种标准下存在一定差异,本文的研究工作仅限于将基本的几何语义信息进行了传递记录,模型转换过程中丢失了大量的语义信息,因此当IFC模型转换后的模型能够承载越来越多的语义信息后,如何有效管理语义信息,是今后设计中的重点与难点。
基金项目
测绘地理信息公益性行业科研专项(编号:201512009)资助。