APP下载

基于IFC标准的建筑信息模型分布式大数据平台存储技术研究

2019-04-01岳石花

计算机应用与软件 2019年2期
关键词:结构化分布式实体

陈 远 胡 航 岳石花

(郑州大学土木工程学院 河南 郑州 450001)

0 引 言

近年来,随着信息技术与计算机网络的发展,各个行业与领域的信息呈现出爆炸式的增长,人类社会已快速进入大数据的时代,而建筑业由于自身碎片化的特点,同样面临着海量数据的管理问题。建筑工程项目全生命周期中每天都会产生、传输、处理和保存大量的数据和信息。传统的建筑工程项目基于分工理论,项目各参与方缺乏有效沟通,数据收集比较困难、数据保存相互孤立,导致项目管理过程中信息交互效率低下、信息丢失严重。BIM技术的出现打破了传统的建筑业信息管理的困局,整合了工程项目全生命周期各阶段的信息,为项目各方提供了统一的信息传递和管理平台。

虽然基于BIM的建筑信息管理具有很大的潜力,但是随着BIM模型的规模和复杂性的增加,利用单台计算机处理多专业BIM模型的存储和分析变得越来越困难。同时,不同BIM软件供应商提供的BIM软件产品都是基于自身特定的数据格式,软件之间的互操作性较差,由此产生了新的信息孤岛。而用来解决BIM信息交换问题的IFC标准,作为BIM技术的开放性标准,主要是基于文件的存储和交互,这种交互方式依旧存在很大的缺陷。因此,基于IFC标准的建筑信息模型需要利用数据库系统平台,实现对建筑工程项目全生命周期内各种数据和信息进行存储、交互和管理。然而,传统的基于关系数据库、面向对象数据库已经无法满足当下建筑业全生命周期内海量和多样化数据存储和管理的需求。因此,运用分布式大数据技术平台,存储基于IFC标准的BIM结构化和非结构化数据,是提高建筑业海量数据存储与交换管理效率的关键,也是提高基于大数据技术的建筑数据分析能力的基础。

1 基于传统数据库的IFC数据存储技术

基于BIM的理念,建筑项目全生命周期各个阶段产生的信息,是由不同的管理人员和工程技术人员通过多种BIM相关应用软件所产生,为了更好地解决不同软件间信息共享与交互问题,有必要制定开放性的BIM数据交换标准。IFC标准能够很好地描述建筑实体信息,是BIM数据共享与建筑信息传递的重要标准,可以使BIM软件具有更好的数据交换性和互操作性。但是基于文件的IFC数据交换和管理仍存在很多不足之处,包括无法形成完整的BIM模型,数据传输与变更实施困难,无法实现对象级的数据控制,不能完全支持同步修改与协同工作等[1]。

为解决基于文件进行数据管理所带来的上述问题,许多学者利用传统的关系数据库、面向对象数据库等技术来存储基于IFC标准的BIM模型信息。例如通过研究IFC数据向关系数据模式转换的算法,为IFC数据在关系数据库中的存储提供了理论探讨[2];通过建立IFC数据与关系型数据模式之间的映射关系,实现面向对象数据模型到关系数据表之间的转换,构建符合IFC标准的BIM数据库[3]。基于数据库管理IFC信息的系统包括:利用关系数据库Oracle存储IFC构件信息的ACTIVe3D系统[4];利用关系数据库Access存储IFC数据的IFC Model Server[5];利用面向对象数据库Object Store存储IFC数据的 WISPER系统[6]。

研究表明,利用关系数据库存储IFC 数据可以克服基于文件存储IFC数据的一些不足,并且已经取得一些成果。但是由于IFC数据是使用面向对象的Express语言进行描述,而关系型数据库使用预定义的表和表之间的关系,不支持对象类型数据的存储,并且关系型数据库与面向对象特性之间的冲突在IFC标准中还未解决,因此并不适用IFC数据的存储。另外,面向对象数据库,其数据的扩展能力比较差,无法完成大规模的动态扩展。在工程项目全生命周期不仅产生基于BIM的结构化数据,还会产生大量的非结构化数据。传统的数据库系统擅长记录结构化的建筑信息,在处理非结构化建筑信息方面具有一定的局限性。随着大数据技术的发展和成熟,利用大数据存储技术不仅可以解决上述的数据存储问题,还可以通过大数据分析技术来提升工程项目海量数据的分析能力。

2 大数据存储与分析技术在建筑业的应用

在土木工程领域已有许多基于大数据存储与分析的研究,其中MongoDB作为主要的大数据数据库,许多研究人员将MongoDB作为建筑数据的基础存储平台。例如,利用MongoDB存储基于IFC标准的BIM数据信息,并以此为基础开发的BIM 信息协作平台[7]。以及Jeong等[8]开发的混合数据管理基础设施,前端使用MongoDB临时存储结构化的的数据,核心数据层使用Apache Cassadra永久存储带有时间标记的传感器数据流。利用公有云或私有云服务器,文献[9]提出了基于云的BIMCloud框架,用来支持项目各参与方的协作和信息共享。另外利用图数据库和Graph DB和图理论,文献[10]通过对IFC模型进行分析,将IFC 模式自动转换为属性图数据库的工作流。

大数据技术不仅包括数据的存储,更重要的是对存储数据的分析。例如,文献[11]采用数据挖掘技术,利用KDD(Knowledge Discovery in Database)框架分析海量的工程项目数据集,并通过统计学方法来克服传统机器学习算法的局限性;文献[12]通过数据挖掘技术,对已完工项目海量数据使用文本分析、链接分析和维度矩阵分析等方法进行学习,并将结果用于未来项目的交付;为了解决建筑设计中暖通、电气和管道之间的碰撞冲突问题,文献[13]利用数据挖掘技术分析BIM模型中有关碰撞问题的历史数据,从而针对具体问题提出了合理建议。

综上所述,利用大数据存储平台可以实现基于BIM的工程项目协同,项目参与方将模型数据存储到分布式数据库,利用网络技术实现对所需业务数据的访问,方便工程参与方的信息共享,实现多人协同。另外可以将工程建设过程中复杂的分析计算从本地终端移到云端进行,基于大数据的分析将大大提高工程计算分析的准确性和效率,进而提升工程整体质量。然而,由于IFC标准的复杂性,建筑信息结构化和非结构化的多样性,大数据存储平台种类繁多、技术框架各不相同,目前对于“BIM+大数据”的研究仍处于探索阶段,对于基于大数据平台的建筑信息的存储和管理的研究有待进一步加强。

3 面向分布式大数据平台HBase的IFC模型存储技术

目前大数据平台系统有很多,如流式数据处理的平台Twitter的Storm和Facebook的Scribe等;交互式数据处理平台Berkeley的Spark和Google的Dremel等;批量处理数据的Hadoop平台等。其中Hadoop凭借其优越的性能,已成为当前大数据处理的主流平台。非关系型数据库HBase作为Hadoop文件系统HDFS(Hadoop Distributed File System)的分布式开源数据库,在大数据存储中得到广泛应用。本研究提出的面向Hadoop大数据平台基于HBase数据库的IFC模型存储系统架构可以分为服务层、数据交互层和客户端三个层次,如图1所示。

图1 面向Hadoop大数据平台基于HBase数据库的IFC模型存储系统架构

3.1 服务层

服务层以Hadoop平台的分布式文件系统(HDFS)作为物理层数据存储基础,利用HBase数据库来管理IFC模型数据,该层存储空间可以水平扩展,使用分布式计算机提供数据支持服务。服务层需要解决的技术问题包括IFC实体数据的存储策略,面向IFC的HBase数据库表格设计,以及BIM的非结构化数据存储等。

3.1.1 IFC实体数据存储策略

IFC标准的实体包括可独立交换实体和资源层实体(不可独立交换实体)。资源层实体一般作为可独立交换实体的属性,不独立参与数据交换。因此数据库建表时只考虑对可独立交换实体建表,资源层实体可直接序列化存储在对应的属性值中。IFC的实体可以划分成以下的逻辑类别存储到数据库:

H=∪{O,RL,R,P}

其中O为继承自IfcObjectDefinition实体的集合,O实体在数据库中以“IFC实体名_GUID”作为行键,并建立对应的列族保存其所有的属性。如果实体的属性为O,数据库保存这个属性的行键“IFC实体名_GUID”而不是具体的数据。

RL是继承IfcRelationship的实体,RL实体主要作为O实体之间的连接或连接O实体与资源层实体。RL实体采用与O实体相同存储策略,如果一个实体的属性为RL实体,数据库仅保存这个属性的行键“IFC实体名_GUID”。

R代表资源层定义的数据类型和实体。在HBase中直接将对象实例序列化,并存储在对应的主体实体的属性列中。

P指继承IfcPropertyDefinition的实体,这种类型实体的属性集包括静态属性集和动态属性集。静态属性集中的属性是以IFC实体属性的方式来定义,因此可以按照O实体的存储策略来存储。动态属性集用IfcPropertySet来表示,由于IfcPropertySet实体只是装载属性的容器,具体的属性是由资源层的IfcProperty实体及其子类来描述。因此动态属性集中的实体存储策略与资源层R实体存储策略相同,将对象实例序列化并存储在主体实体的属性列中。

3.1.2 HBase数据库表格设计

HBase数据库以行健(RowKey)、列族(ColumnFamily)、列(Column)和时间戳(TimeStamp)来确定数据单元(Cell)。行健是HBase数据库检索查询的关键,在创建表时定义列族,列可以在存储数据时动态扩展添加到列族中,因此行键和列族的设计是HBase数据库表格设计的关键。

HBase中每行数据都有自己的唯一标识行健(RowKey),虽然IFC中每个实体实例都有计算机自动生成的唯一标识符(GUID),但是这些字符串对于用户进行查询时作用不大,因此可以在GUID前加上IFC实体名“IFC实体名_GUID”作为行键,方便根据IFC实体来进行快速查询。另外,HBase中的行是按照行键的字典顺序进行排序,在一定程度上方便按照行健进行数据的聚集和整合,因此可以在行键前部加上IFC项目文件名,这样同一个项目中的每个行键前都有相同的前缀,可以将同一个项目之间的信息存储在一起,方便用户在较小的键值范围内快速查询信息。所以最终行键确定为:“IFC项目名_IFC实体名_GUID”。

根据IFC标准中实体属性的类别,在HBase数据库中,按照直接属性(Driect)、导出属性(Derive)、逆属性(Inverse)这三种属性分别对应三个列族:Driect列族、Derive列族和Inverse列族。其中Driect列族的直接属性可以将属性值以字符串的形式保存在对应的列内。对于Derive列族中的导出属性,当属性值对应的是资源层的实体时,将这些实体对象进行二进制序列化处理。对象序列化不仅可以保存一个对象的数据,而且可以递归保存对象引用的每个对象的数据,序列化一个对象可以得到整个对象序列。所以利用序列化方法可以很好地解决导出属性对应的IFC实体的多层引用关系。对于Inverse列族中的逆属性,是通过关系实体来表达该实体与另一个实体的一对一或一对多的关联关系。因此需要先关联相应的关系实体实例,此关系实体实例在HBase表格中的某行存储。为了保持该实体实例与关系实体实例之间的关联,将对应的关系实体实例的行键存储在该实体逆属性对应的列中。图2以IfcProject实体实例和其某个属性中对应的关系实体实例IfcRelAggregates来说明IFC数据结构在HBase数据库中表的设计。

图2 IFC数据结构在HBase数据库中表的设计

3.2 数据交互层

数据交互层的主要作用包括:将BIM模型的非结构化数据和解析后IFC数据通过调用HBase Java API上传到HBase数据库中;调用HBase Java API从HBase中读取数据,利用AJAX(Asynchronous JavaScript And XML)数据交互技术将数据传递到WEB前端。

3.2.1 基于IFC标准的BIM模型解析

IFC标准使用的EXPRESS是一种面向对象的信息描述语言,不是编程语言,不能直接编程开发,因此首先需要对底层的IFC标准的数据进行解析,才能运用计算机语言如C#、C++、JAVA等来编程实现具体功能。目前针对IFC数据进行解析的软件工具主要包括Jotne EPM Technology 公司的EDM,基于C++的IfcPlusPlus,基于.NET平台的xBIMToolKit,基于JAVA的IFC JAVA Toolbox等。本研究采用IFC JAVA Toolbox[14]作为解析工具,创建IfcModel类作为BIM模型类,该类包含了模型中所有的实体。IFC模型数据中的根实体IfcProject是解析对象的起点,是整个模型的最高级别实体类型,因此解析模型中每一个零部件、一根杆件,还是整个工程项目,都从IfcProject开始,自上而下地逐层定义对象,直到完整解析所有的模型实体及其属性。具体的解析方法可见参考文献[15-16]。

3.2.2 基于HBase Java API的数据交互

HBase数据库接口为上层进行数据存取提供了多个类包,实现了两个主要功能,一可以对数据库表一级进行操作,二是可以对表进行数据存储操作。如图3所示,该系统主要包括7个类,其中HBaseConfigurationToIfc是系统的配置类,AdminHTable类和HBaseDataCURD类都继承自HBaseConfigurationToIfc类,进而继承该类配置文件对象conf,由conf对象实现自动载入所需配置文件,该对象也提供相应的方法用来设置配置文件里的变量信息。通过AdminHTable类可以对数据库表格进行操作,通过HBaseDataCURD类可以对表格中的数据进行操作,这两个类都是通用的操作类,其他Ifc、Picture、Document、User类是通过通用操作类封装的操作接口,对HBase数据库表和表对应的数据进行操作。

图3 基于HBase Java API的系统类表

3.3 基于Web的客户端

系统采用基于Web的客户端,将BIM的IFC数据存储在HBase数据库中,通过AJAX实时发送回Web前端,从而实现前端界面和后台之间的时时交互。JavaScript用于启动键盘和鼠标触发事件。系统客户端网页框架分为3组:菜单组、项目组、账户组。其中:菜单组提供网页的页面布局与索引;项目组管理用户上传基于IFC标准的BIM模型数据和查看模型数据列表,并且可以动态地添加工程中产生的其他非结构化数据;账户组提供账户的注册和登录信息。

4 案例验证

系统技术验证采用的是由Revit建立的教学楼BIM模型,如图4所示。该模型分为三层结构的教学区和一层结构的食堂两部分。本案例中的BIM模型不仅包括建筑物模型,还包括场地地形模型,以及场地平整与场地构件模型(如场地上篮球场、灌木丛、路灯等的布置),这些模型丰富了模型导出的IFC实体类,验证了HBase存储IFC实体数据的多样性。

图4 案例验证的教学楼BIM模型

4.1 Hadoop与HBase分布式大数据环境搭建

分布式大数据环境和传统的单机或服务器环境有所不同,它使用基于集群的分布式存储与并行计算体系结构和硬件平台,能够处理结构化与非结构化/半结构化数据。由于大数据环境的复杂性,Hadoop与HBase环境的搭建是IFC模型存储的第一步,表1为本文所用软件及版本号。

表1 本文所用软件及版本号

Linux是一款开源的操作系统,许多公司在其原有基础上开发出性能更加优越的操作系统,Ubuntu以Linux为内核,人机界面采用窗口式,其使用和升级全都是免费和开源的。Hadoop系统运行于由普通商用服务器组成的计算集群上,该集群在提供大规模分布式数据存储资源的同时,也提供大规模的并行化计算资源。图5为安装和配置完成以后,Hadoop启动进程的网页浏览。另外,在HBase安装和配置成功后,可以通过访问Web界面,查看 NameNode和Datanode信息,还可以在线查看 HDFS 中的文件,如图6所示。

图5 Hadoop启动进程的网页浏览

图6 HBase启动进程的网页浏览

4.2 基于Hadoop与HBase的IFC数据存储流程

如图7所示,基于分布式大数据环境的IFC数据存储包括以下几个步骤:首先将BIM模型导出IFC格式的文本文件;其次对IFC格式的文本文件进行解析;然后调用封装的HBase Java API类对解析后的数据进行处理并存储到HBase数据库,同时该系统支持其他各种非结构化数据的导入;最后根据用户的需要可以通过Web前端将Hbase数据库中的数据反馈给前端用户,使用户可以在前端界面实现相应的功能。

图7 基于大数据环境的IFC数据存储流程

4.3 基于BIM的结构化和非结构化工程数据存储技术的实现

用户管理模块主要用于管理用户的信息以及对用户操作该系统的合法性进行验证。图8所示为用户注册和登录界面。该系统的存储模块包括对IFC结构化数据的存储和管理,以及对项目非结构化数据的存储和管理。图9所示为系统加载IFC文件的界面,图10为后台HBase加载IFC数据的过程,图11为解析和加载完成后,HBase数据库表中保存的IFC数据。

图8 用户注册和登录界面

图9 系统加载IFC文件

图10 后端HBase加载IFC数据的过程

图11 后端HBase数据库表中保存的IFC数据

对于保持在HBase数据库中的IFC数据和非结构化数据,可以利用关键字进行检索和查询,并且可以在Web终端显示,图12为Web终端显示的IFC数据,图13为现实的非结构化数据。

图12 Web终端显示的IFC数据

图13 Web终端显示的非结构化数据

5 结 语

大数据技术的出现为建筑信息模型海量数据的存储、交互、管理和分析带来了极大的潜力。本研究分析了大数据技术与BIM技术相结合的优势,深入探讨了分布式大数据平台Hadoop和HBase整体架构和存储模型;创建了基于HBase数据库存储IFC结构化数据和非结构化数据的策略及数据表格的设计;建立了基于HBase数据库的建筑信息模型存储系统,实现了对BIM数据的基本管理操作,并通过实例验证了该系统的可行性。本研究为下一步基于分布式大数据环境的BIM模型可视化和工程项目的大数据分析,提供了坚实的数据平台。

猜你喜欢

结构化分布式实体
改进的非结构化对等网络动态搜索算法
深度学习的单元结构化教学实践与思考
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
浅析分布式发电对电力系统的影响
前海自贸区:金融服务实体
实体书店步入复兴期?
基于预处理MUSIC算法的分布式阵列DOA估计
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”