BIM与SuperMap GIS数据集成技术
2018-10-21蔡文文王少华钟耳顺冯振华
蔡文文,王少华,钟耳顺,3,4,冯振华,4,李 濛,王 博
(1. 北京超图软件股份有限公司,北京 100015;2. 加州大学圣巴巴拉分校,加利福尼亚 93106;3. 中国科学院地理科学与资源研究所,北京100101;4. 北京市地理信息核心软件与应用工程技术研究中心,北京 100015)
0 引 言
GIS应用目前多局限于室外空间,室内空间表达的局限性成为其从室外走向室内的瓶颈之一[1]。现有室内数据基本都是简单的二维地图,只能提供平面的室内布局信息,不能表达建筑物内部的复杂环境,不能描述由于建筑构件(如门窗、走廊等)的约束造成的室内空间的非连续性[2],也不能区分三维空间上的重叠特征[3](如各类管道等)。这类数据,无法支撑室内三维导航、设施管理、应急救援等应用。急需建立反映客观实际的室内三维空间数据模型。
室内空间模型可分为设计模型(Design Models)和真实世界模型(Real World Models)[4]。建筑信息模型(Building Information Models,BIM)属于前者,它详细描述了几何、物理、规则等丰富的建筑空间和语义信息[5],用于单个建筑全生命周期的管理。地理空间数据模型属于后者,它是典型的GIS数据模型,可借助三维GIS技术实现大规模数据的管理、分析与可视化。如果将大量高精度的BIM数据转换为室内GIS系统的数据源,并与倾斜摄影数据、地形、三维管线等多源数据融合,可实现宏观与微观的相辅相成、室外到室内的一体化应用。
但BIM是将一个建筑表达为一个模型,采用局部坐标系和多种几何对象表示方法(边界描述BRep、扫描体Sweeping、构造几何体CSG等)。地理空间数据模型是在一个模型中表达多个建筑及其他客观实体,采用绝对坐标系(如经纬度坐标),并多采用BRep表达几何对象[4,6]。数据模型的差异增加了BIM数据与GIS系统集成的难度。
工业基础类(Industry Foundation Classes,IFC)和城市地理标记语言(City Geography Markup Language,CityCML)作为BIM和GIS领域通用的数据模型标准,为两者数据集成提供了基础[7-8]。国内外关于两者互操作的研究主要集中在基础数据模型的融合和现有数据格式的集成两方面[9]。由于不同领域对空间对象的表达和理解存在差异,使得数据模型融合缺乏统一的标准,也得不到各领域的认同,因此大部分工作还是集中在两者模型数据格式的集成[5]。如Hijazi等提出一种转换框架,用于实现IFC几何、语义信息到CityGML的转换,从而借助GIS技术,实现水电设施的管理与维护[10]。Amirebrahimi等实现了一种综合框架,用于集成BIM高密度模型和GIS可视化能力,评估洪水对建筑物造成的损失[11]。汤圣君、赵霞等研究了基于几何过滤和语义约束的IFC到CityGML的转化方法,并经过了实例验证了方法的有效性[5,12]。
本文在前人工作的基础上,提出了一个基于语义映射和多层次细节模型(Level of Details,LOD)的转换方法,用于实现BIM几何和语义信息转换到SuperMap GIS 8C软件平台。在此基础上,本文还采用三级缓存策略以及一系列渲染与绘制的技术手段,实现大规模BIM数据在该平台中的高性能可视化,并为BIM添加空间分析能力,支撑室内外一体化的安全应急、设施管理和位置服务等应用。
1 BlM与GlS集成问题分析
1.1 BIM与GIS集成的复杂性
BIM专业软件多样化,覆盖建筑、结构、基础设施、方案设计、结构分析类、模型检查、运营管理等建筑工程行业的各个方面。这些软件在各自的发展历程中,因应用目的和专业不同,形成了独有的数据格式,如DWG、DXF、DGN、NWD、RVT、PLN等。这些模型格式采用了不同的数据结构和数据标准。如DXF模型[13]主要由图形对象和非图形对象组成,也包含有限的属性信息,主要由6部分(section)组成:HEADER、CLASSSE、TABLES、BLOCK、ENTITIES和OBJECTS。其中,ENTITIES和OBJECTS分别包含图形和非图形对象,其余部分是关于符号表定义、应用类定义、绘图实体定义等信息。DGN 模型[14]是由基于ISFF标准(Intergraph Standard File Format)的两种二进制文件组成,分别为Design file和Cell libraries。其中,Design file包括图形元素(如线、线弦、椭圆弧、椎体等及其组成的逻辑实体)、非图形元素以及可能的用户自定义数据,Cell libraries记录了Design file中位置的元胞定义(包含如经纬度等信息)。可见,不同模型格式虽然都可以完整地表达建筑物三维空间信息,但并不开放,相互之间无法集成与共享,可能无法采用相同的方法实现不同格式数据与GIS的集成。
对室内GIS而言,高精度三维空间数据的生产、收集耗时耗力,应该可能多的支持不同的BIM数据格式,实现独立的、不同来源的数据集成与共享。因此我们的做法是首先将不同软件的数据格式转换为IFC标准格式,再与SuperMap GIS集成。IFC作为BIM领域通用的数据模型标准(ISO 16739),是对建筑物信息描述最全面最详细的规范,使得不同模型格式之间的数据实现了共享和互操作[7],也为BIM与GIS集成奠定了基础。常用的BIM软件(Revit、Bentley、CATIA、MagiCAD、BIM 5D、鲁班等)都支持将各自的数据格式转换为IFC标准模型。转换的方式即通过软件自带的导出功能或者第三方转换插件进行。但由此可能带来的几何失真和信息损失,对不同室内GIS应用的影响程度有待在实际应用中加以验证。
为实现IFC与CityGML之间的数据集成,我们需要了解两者在几何、语义方面的区别和联系。在几何表达上,IFC通常有3种表达方式:边界描述(BRep)、扫描体(String)和构造实体几何(CSG)[4,7]。在边界描述中,一个实体由多个边界面片的组合来呈现。扫描体可通过将平面对象沿路径拉伸或绕轴旋转拉伸而得到。CSG一般是由多个基础几何体,如立方体、球、圆柱、圆锥等,通过几何变换、布尔运算以及剖割、局部修改等操作构成的复杂几何实体。而GIS中的三维几何主要采用边界描述来表达[4,8]。
在语义信息表达上,IFC包含丰富的建筑细节描述,有600多个对建筑实体的定义和300多个对建筑类型的定义,也包含建筑构件之间的语义连接关系,如IfcSite、IFCBuilding、IfcBuildingStorery3个类型间的层次关系被IfcRelAggregates连接表示[5,7]。CityGML的语义信息表达为了客观实体的特征,如建筑物、墙壁、窗户、房间等,也包括特征之间的属性、关系和聚集层次等。CityGML的语义信息相对比较少,通过语义映射,CityGML的大部分语义信息都可以从IFC模型中获取。
在尺度表达上,CityGML采用多尺度建模方式,即5个层次细节(LoDs)描述了从城市宏观场景到建筑物内部的不同尺度、不同细节的信息[8]。LOD0本质上是将2.5维的DTM叠加在影像或地图上的粗糙表达,包含了建筑物的屋顶平面和底面平面。LOD1是块模型,建筑物表达为具备平顶结构的柱形体。LO2为不同建筑加入了不同的屋顶结构和边界表面。LOD3为建筑提供了更加详细的墙、屋顶结构,甚至门、窗信息。LOD4是对LOD3的进一步完善,增加了详细的室内结构,如家具、楼梯等,具有最详细的几何、语义信息。IFC只局限于对建筑及其内部构件的描述,不具备多尺度表达的特点,但基于LOD层次细节模型,IFC可以转换到CityGML的任一层次上。
1.2 BIM在GIS中进行空间分析与可视化难度大
BIM模型数据包含建筑工程全生命周期的所有信息,它将规划、设计、建造、运营等各个阶段的数据资料全部整合到同一个3D数字模型中,数据量大,仅一栋大楼一年的数据量在TB级,城市级别的数据量不可想象,给计算机GPU、内存带来很大压力。精细的BIM模型还包含许多形状相同的几何实体,如图1中显示的建筑模型,图元类别6 600多个,含有超百万级的重复特征,一次性渲染压力大。这对互联网、移动互联下的BIM-GIS应用而言,受网络带宽、移动设备内存容量的限制,实时分析与可视化难度大。
图1 具有6600个图元类别的一栋大楼的BIM模型数据Fig.1 Sample of BIM data with 60 million geometries and 37 million vertexes
为实现大规模BIM数据的多分辨率表达,及其管理调度等问题,我们构建了从本地缓存、内存、显存的三级缓存结构,通过模型轻量化、实体化、GPU、LOD等技术,实现大规模BIM数据的高效加载与实时绘制。
2 BlM与SuperMap GlS集成关键技术
2.1 基于LOD的BIM与SuperMap GIS数据集成
CityGML包含几何模型和主题模型,主题模型即将几何模型用于不同的主题,如建筑,所有模型都采用LODs进行多尺度表达,不同LOD层级的几何数据精细程度不同。IFC虽然包含900多种实体类型,但不是所有类型都需要转换到CityGML,可根据不同的GIS应用需求和不同LOD层级所须的IFC组件类型,进行数据过滤和信息简化,也有助于实现模型轻量化,如图2所示。
在LOD0中,建筑被表达为水平和三维的表面,只突显建筑的轮廓,一般通过集成其他数据获得,与IFC无语义对应。LOD1通过AbstractBuilding将建筑表达为具有为外壳的实体三维模型,可由IFC的墙面IfcWall、天花板IfcSlab、楼层IfcBuildingStorey获得建筑外轮廓与高度等信息,并与AbstractBuilding映射。LOD2通过BoundarySurface,包括WallSurface、RoofSurface、OuterCeilingSurface描述了建筑的墙体、屋顶等更加详细的外轮廓信息,IFC的墙IfcWall、屋顶IfcRoof、遮盖物IfcCovering等可与之映射。LOD3通过BuildingInstallation表达了强烈影响建筑外观的元素,如阳台、烟囱等,通过BoundarySurface的openings增加了连接建筑内外部的门、窗等信息,可通过IFC的门IfcDoor、窗IfcWindow等获取并与之映射。LOD4在LOD3的基础上,增加了建筑内部细节,如通过IntBuildingInstallation描述建筑内部无法移动的对象(如管道等),用BuildingFurniture表达建筑内部可移动的对象(如家具等),与IFC的IfcFurnishingElement等映射,通过BoundarySurface的CeilingSurface、InteriorWallSurface、FloorSurface表达了天花板、内墙和地板等信息,见表1。
图2 IFC转化到CityGML的语义映射Fig.2 Semantics Mapping of IFC to CityGML
表1 IFC与CityGML语义映射(部分)Tab.1 Semantic Mapping between IFC and CityGML
根据语义信息,筛选IFC需要输出的构件类别,并存储到标准的GIS数据库。在这一过程中,可为输出的几何信息添加精确的地理空间位置信息。该位置信息是根据模型本身包含的局部坐标系转换到绝对坐标系而得到。模型信息的输出可借助我们开发的插件实现,同时为每个构件输出唯一的ID标识,作为关键字将几何信息与其属性信息相关联。通过IFC与CityGML的数据集成,可实现从室外城市级空间,到层次细节模型,到室内空间的多尺度表达,如图3所示。
图3 BIM与SuperMap GIS 8C数据集成:从城市宏观到建筑微观的展示过程Fig.3 BIM and SuperMap GIS 8C data integration: from macro urban space to the micro indoor space
2.2 基于三级缓存的BIM高性能可视化
我们采用一系列的技术手段,实现大体量BIM数据在GIS中的高效加载与可视化,具体流程如图4所示。
图4 BIM与SuperMap GIS集成技术流程图Fig.4 Technical fl ow chart for integration of BIM and SuperMap GIS
第一,BIM本地缓存。通过BIM与SuperMap GIS数据转换插件根据2.1节的原理对模型进行实例化处理和LOD分层处理之后,再根据数据的投影坐标范围将其进行八叉树剖分,八叉树是以空间内的一个点为基准将空间划分为8个区域而形成8个子树,适用于高度上值较大但平面范围较小的三维空间物体,如BIM建筑模型。对剖分的每一个区域内的数据按照一定的瓦片边长,存储为不同分辨率(如2048×2048,1024×1024,512×512,256×256,128×128,64×64)的三维切片缓存文件。缓存有助于提升大体量数据的浏览性能与显示效果。
第二,模型轻量化技术。模型轻量化是根据BIM模型的语义信息,对模型的某些骨架进行删除或者简化,达到通过减少数据量提高渲染效率的目的。如图1中单独的一个门对象,含有顶点个数980个,三角面片920,其中门把手、锁芯占据80%~90%的数据量(由此推断整栋大楼、整个园区甚至整个城市的数据量会更加庞大),这些构件对GIS来说缺乏实用价值或者重复性太高,因为我们采取删除或者简化这些骨架来达到模型轻量化的目的,如图5所示。
图5 BIM模型轻量化功能界面图Fig.5 Light weighing interface of BIM data
第三,实例化技术。实体化是针对形状相同的几何模型,抽象其示例存储在内存中,减少内存空间占用,重复构件的渲染绘制通过在GPU中对实例进行矩阵变换实现。即GPU首先通过批量化指定绘制函数,对各个实例进行批次渲染,然后将相关实例化对象的特征数据内容传递给GPU,通过平移、缩放、旋转等得到与实例几何形象相同但位置、大小、角度存在差异的构件,避免超百万级构件同时加载,降低GPU等硬件设备的压力。
第四,基于视点的LOD调度。在现有硬件性能条件下, 结合场景内绘制数据量随视野远近而变化的LOD调度技术则更能提升数据浏览速度。基于视点的LOD调度,指根据与观察点的距离评价模型的重要程度,距离观察点越远,模型显示的精细程度越粗糙,是一种简化视野中三维场景复杂度的技术。它包括视点区域的确定和LOD的数据获取两方面。视点区域可由3个参数定义,分别是视点在屏幕上的位置、视区域大小和视区域内的分辨率衰减函数。衰减函数的作用是控制视区域内BIM数据的分辨率沿视点向区域边缘逐渐降低,并在边界处与区域外分辨率保持一致,保证数据在多分辨率绘制时的视觉平稳性。LOD的数据获取基于二维屏幕空间与三维场景空间的映射关系表实现,即对于视点区域内的任一像素,通过关系表定位三维体像元映射后的最邻近点,进而确定对应的三维信息。
以图1中的数据渲染为例,采用上述一系列内外存优化绘制技术后,显卡实时显示和渲染的平均帧率达到65帧/秒(视觉感受流畅的标准是帧率>24帧/秒),具有较强的交互感和逼真感;与SuperMap GIS 7C的渲染速度相比,帧率提升300%。
未来,我们还研究满足GPU泛用性的几何和纹理数据压缩与解压缩方法,研究采用可编程渲染管线技术优化绘制流水线的技术,研究通过范围裁剪、视锥体裁剪、遮挡裁剪等算法,实现渲染目标的剔除,研究使用多线程技术,对数据的调度、读取、渲染进行优化等,实现大规模BIM数据实时高效绘制。
2.3 基于BIM的空间分析
BIM经语义映射和几何转化导入GIS之后,GIS可为BIM数据及其表达的建筑物的每一层、每一个室内构件提供高亮选中、定位、查询、统计等GIS功能。SuperMap三维空间分析可分为四大类,可适用于BIM模型的有三类,分别是:三维量算,如距离量算、面积量算和高度量算;三维GPU分析,如日照分析、通视分析、可视域分析;三维网络分析,特指对三维设施数据的(如BIM管线)网络分析和对三维交通数据(如由BIM提取的室内交通路网)的网络分析。此外,还可在GIS中动态展示工程的建造过程。
BIM与GIS的集成,一方面可以通过自定义投影的方式与地形等数据匹配,有效展现BIM与周边环境的关系,如建筑物周边的自然生态环境、地形地貌环境和人文景观环境,有利于大规模工程的协同管理。另一方面可将GIS的空间管理、查询和分析能力加诸于BIM,有利于实现数字化的设施管理,通过与移动互联网、物联网以及楼宇内各类系统(如门禁、监控等)集成,实现室内外一体化的应急演练和位置服务等。
3 结束语
BIM与GIS模型数据的集成目前缺乏统一的信息交换标准。本文通过IFC与CityGML的语义映射和几何过滤,实现了BIM与SuperMap GIS的数据集成,通过实例化技术、LOD调度,实现了大规模BIM数据在SuperMap GIS中的高性能渲染与可视化。GIS作为收集、存储、管理和分析空间信息的技术,可以充分利用BIM包含的建筑及其内部丰富的几何、语义信息,两者的数据集成不仅为建设过程提供查询、空间分析的工具,支持大型工程的建设与维护,也为GIS应用从室外走向室内,从城市宏观走向建筑微观的重要数据源,支撑室内外一体化的安全应急、导航和位置服务应用,支持智慧城市建设。
我们的工作仍有很多需要完善的地方。第一,BIM建模软件繁多,相互间的独有模型格式不支持互操作。我们采用全部转为IFC格式的方法,对由此造成的信息损失需要进行评估。目前我们已经开始将各软件独有模型格式直接与SuperMap GIS软件平台进行数据集成,但需要比较这两种方法的优劣。第二,探索SuperMap GIS软件平台对具备超百万级室内构件的BIM数据的云端协同绘制技术,即数据和绘制都在云上实现,终端只是作为命令的入口。第三,探索基于BIM的GIS应用,在实践中创新和改进BIM-GIS集成技术。目前,已有研究将原始铁路设计的中线数据导入三维可视化平台,自动生成铁路路基、桥梁、隧道、接触网、护坡等横断面模型,进行土方量分析与量测、纵断面信息采集等;将地下管廊BIM数据用于解决城市内涝、反复开挖路面、架空线网密集等问题。