基于ifc标准的建筑信息模型数据集成与交换引擎装置和方法

文档序号:6353511阅读:739来源:国知局
专利名称:基于ifc标准的建筑信息模型数据集成与交换引擎装置和方法
技术领域
本发明属于建筑业信息技术领域,旨在解决建筑信息模型(BuiIding Information Model, BIM)的创建和应用,具体涉及一种以基于IFC标准和关系型数据库 (Oracle,Microsoft SQLServer和MySQL等)建立的BIM数据库为基础,实现IFC格式BIM 模型解析、非IFC格式建筑信息转化、BIM子模型提取与集成以及BIM数据存储、交换和BIM 数据访问控制的建筑信息模型数据集成与交换引擎装置和方法。
背景技术
建筑信息模型是以三维数字技术为基础,集成了建筑工程项目各种相关信息的工程数据模型,是对工程项目设施实体与功能特性的数字化表达。一个完善的信息模型,能够连接建筑项目生命期不同阶段的数据、过程和资源,是对工程对象的完整描述,可被建设项目各参与方普遍使用。BM具有单一工程数据源,可解决分布式、异构工程数据之间的一致性和全局共享问题,支持建设项目生命期不同阶段和不同应用系统间动态的工程信息创建、管理和共享,有效提升建筑业的整体效率和信息化水平。IFC (Industry Foundation Classes)标准是由国际协作联盟(IAI, International Alliance for Interoperability)于1997年发布的针对建筑工程领域的产品模型标准。IFC标准采用EXPRESS语言定义了建筑信息中的各种实体以及实体间的关联关系,为建立面向建筑生命期的BIM提供了建筑产品数据表达与交换的标准,是当前主导 BIM构建的技术标准。由于建筑行业的多阶段和多参与方等特性,BIM技术应用的难点之一在于BIM数据的集成与交换。譬如,建筑、结构、设备各专业设计创建的建筑模型、结构模型和设备管线模型如何进行数据集成,形成可应用于施工、运营阶段的完整设计模型;同时结构设计如何从建筑模型中提取所需数据,实现信息共享,从而减少数据重复输入,提高设计效率和质量。一个完善的BM应该包含建筑全生命期各个阶段的信息和数据,但建筑生命期不同阶段的BIM创建和应用,往往是针对某个或几个特定的应用范围,涉及BIM中的局部数据。为实现分阶段和面向应用创建BIM,本研究提出了建筑子信息模型(sub-BIM)概念。 sub-BM是全局BM的子集,是面向过程的BM信息提取与集成的基础。本发明采用IFC 子模型视图定义BM元数据模型,建立子模型视图的定义流程及存储格式,实现了 BIM子集数据的提取、集成和交换。子模型视图用XML语言进行描述,包括了定义子模型相关的实体类型、实体属性及属性的访问状态信息。基于子模型视图可以从全局模型中提取所需的子模型数据,通过必要的扩展,生成面向不同应用的sub-BM,也可将sub-BM集成到全局BM 中。譬如当结构设计时,需要从建筑信息模型中提取相关结构设计信息,形成结构子模型。 子信息模型的定义和应用使模型数据的提取、传输仅限于相关数据,能够减少数据的并发访问、有利于保持数据的一致性、避免数据冲突。
在当前BM应用中,通常采用以下三种方式进行BIM数据集成与交换现有方式I、基于软件供应商的内部标准格式进行数据集成与交换。譬如, Autodesk公司基于BIM技术的建筑设计软件RevitArchitecture,结构设计软件Revit Structure,设备管线设计软件Revit MEP,施工模拟和碰撞检测软件Naviswork,均主要通过Autodesk内部标准格式.rvt进行数据集成交换。这种方式存在以下缺点I、无法与其他软件供应商的相关BIM软件进行数据集成与交换;2、无法进行版本控制;3、难以支持多用户协同工作与同步修改;4、难以精细地控制数据访问权限;5、不支持BIM子模型的集成与交换。现有方式2、基于IFC文件进行数据集成与交换。由于该方式实现容易,已经广泛使用。譬如Tekla Structures Xsteel创建的钢结构模型可以导出为IFC文件,然后Revit MEP导入该IFC文件,在Revit MEP中重建钢结构模型,并基于此钢结构模型进行设备管线建模,从而实现结构设计与设备管线设计的信息交换与共享。这种方式存在以下缺点I、无法进行版本控制;2、不能支持多用户协同工作与同步修改;3、只支持线性的工作流程;4、难以精细地控制数据访问权限;5、由于不同应用对IFC标准的理解差异,容易导致数据丢失;6、不支持BIM子模型的集成与交换;7、随着设计的深化或项目规模加大,IFC文件将海量增大,信息交换速度和效率成为亟待解决的瓶颈问题。现有方式3、基于BIM服务器(BIM Model Server/Repository)进行数据集成与交换。该方式采用安装在服务器端的中央数据库进行BIM数据存储与管理。用户从BIM服务器提取所需的信息,进行相关应用的同时扩展模型信息,然后将扩展的模型信息重新提交到服务器,从而实现BM数据型的存储、管理、交换和应用。该方式可以实现面向实体的修改追踪,版本控制,权限管理,能支持多用户协作和同步修改。但因需要建立BIM服务器及相应的数据库,以及基于BIM服务器的数据存储、集成和访问引擎,技术难度较大,该方式目前尚未得到应用。从采用的数据库类型分类,基于 BIM服务器的数据集成与交换的方式包括以下三种现有方式31,基于关系型数据库的BIM数据集成与交换方式。针对BM具有面向对象特性,该方式需要建立BIM数据与关系型数据库二维表的映射关系,由于所述映射关系的复杂性,其效率有待优化。但该方式能够充分利用各企业广泛应用的Oracle、Microsoft SQL Server等关系型数据库,具有成本低、配置方便、安全可靠等特点。现有方式32,基于面向对象数据库进行BIM数据集成与交换。由于BIM具有面向对象特性,应用面向对象数据库进行BIM数据存储具有应用方便、效率高等特点。但目前面向对象数据库在数据安全性和稳定性等方面存在不足,购置成本较高,而未得到广泛应用。
6
现有方式33,基于自主研发的数据库进行BM数据集成与交换。结合IFC标准或STEP标准的特性,自主研发数据库通常能较好地支持BM数据的存储和访问;但由于当前相关技术不够成熟,开发成本高,存在数据安全性、稳定性以及复杂事务处理和批量数据处理能力不足等问题,其应用受到很大局限。目前国外发布的基于BM服务器的数据集成管理平台主要有VTT Building and Transportand SECOM Co.开发的 IFC Model Server, Jotne EPM Technology 开发的 EDM Model Server, Building Smart 开发的 BIM Server (开源)和 Eurostep 开发的 Eurostep Model Server。其中IFC Model Server属于方式31,其他三个平台属于方式33。目前BM 服务器均存在以下不足I、尚未实现面向阶段和应用的BIM子模型集成功能。现有BIM服务器将不同阶段或不同应用提交的BIM数据(IFC文件)分别存储,即一个项目形成多个模型,不能形成一个完整模型。2、数据提取效率低。一方面是因为需要从多个模型中进行数据查询和提取,另一方面未采用数据批量处理技术。3、未提供BIM子模型定义和表示方法。

发明内容
本发明的目的是针对上述现有技术的不足,提供一种基于IFC标准的建筑信息模型数据集成与交换引擎装置和方法,能够以基于IFC标准和关系型数据库(Oracle, Microsoft SQLServer和MySQL等)建立的BM数据库为基础,实现IFC格式模型解析、非 IFC格式建筑信息转化、BIM子模型的提取与集成以及BIM数据存储、交换和访问控制等功能,为建筑全生命期各阶段BIM数据的集成、交换、共享和应用提供技术支持,为构建包含建筑生命期不同阶段的数据、过程和资源的完整建筑信息模型提供装置和方法。为实现上述发明目的,本发明提供了一种基于IFC标准的建筑信息模型数据集成与交换引擎装置,应用该装置可以实现基于BIM数据库的数据集成和交换,支持多用户基于BM的协同工作和数据访问控制。其中BIM数据库是一种基于IFC标准建立的关系型数据库,用于存储和管理BM数据。该装置包括以下组件IFC实体库根据IFC大纲,用面向对象的高级程序语言定义了各类实体及其属性,并对各类实体分别建立一个容器存放BIM模型中各类实体的实例,用于在内存中对信息模型进行表达、组织和管理,便于模型的显示、查看与调用。IFC文件解析器与所述的IFC实体库相连接,实现对IFC文件的读取与解析,并在内存中以IFC实体库定义的格式重建模型。IFC几何模型转化器与所述的IFC实体库相连接,通过定义的数据映射关系将.dxf,. 3ds和.obj等常见的非IFC格式三维几何模型转化为IFC格式模型,并以IFC实体库定义的格式在内存中重建模型。Project-IFC转化器与所述的IFC实体库相连接,通过定义的数据映射关系将项目管理系统创建的进度信息转化为IFC格式进度信息,并以IFC实体库定义的格式在内存中重建模型。BIM子模型集成器将选定的BIM子模型视图转化为数据集成约束条件,该条件实际上通过建立相应的数据表以及设置其更新操作、删除操作和新增操作的Sql语句来表示,便于BIM数据存储器直接应用。BIM子模型提取器将选定的BIM子模型视图转化为数据提取约束条件,该条件通过建立数据表以及设置其查询操作的Sql语句来表示,便于BM数据存储器直接应用。BIM数据访问控制器与BIM子模型集成器及BIM子模型提取器相连接,当系统进行BIM子模型提取或集成时,根据BIM子模型提取器或BM子模型集成器的输出结果,对 BIM数据库进行访问,查询所涉及数据(表及记录)的用户权限和当前签出状态。BIM数据存储器与所述的IFC实体库、BM子模型集成器和BM数据访问控制器相连接,根据BIM子模型集成器的数据集成约束条件、BIM数据访问控制器的输出结果以及IFC实体库中的每类实体与数据库二维表的映射关系,将内存中的建筑信息模型存储到 BIM数据库中,同时应用数据批量处理技术(例如,ado. net)实现数据的批量存储和修改, 提高BIM数据存储和集成效率。BIM数据提取器与所述的IFC实体库、BM子模型提取器和BM数据访问控制器相连接,根据BIM子模型提取器的数据提取约束条件、BIM数据访问控制器的结果以及IFC 实体库中的每类实体与数据库二维表的映射关系,从BIM数据库中查询和提取数据,并在内存中以IFC实体库定义的格式重建模型。IFC文件生成器与所述的IFC实体库相连接,实现将内存中以IFC实体库格式定义的建筑信息模型导出为IFC文件,便于其他BIM应用软件共享数据。进一步地,所述的BM数据访问控制器包括用户权限控制器根据用户权限设置,控制用户对BM数据的访问;并鉴于BM数据面向构件的特性及实际需求,所述用户权限控制器可实现记录级别的用户权限控制。并发访问控制器采用数据签入签出机制,实现记录级别的并发访问控制。其基本原理如下当某一用户需要修改某一记录时,签出该记录,则其他用户无法对签出的记录进行修改,而当其他用户对签出的记录进行查看时则提醒该记录已被签出修改;当该用户完成修改后,保存数据时则签入该记录,此后其他用户便可签出该记录进行进一步的修改。所述的基于IFC标准的建筑信息模型集成与交换引擎装置,采用子模型视图定义 BIM子模型,实现面向建筑生命期某一阶段或某一应用的BIM数据集成与交换。所述的基于IFC标准的建筑信息模型集成与交换引擎装置,采用数据批量处理技术(例如,ado. net),实现BIM数据集成与交换的批量处理,有效提高了基于关系型数据库的BIM数据集成与交换的效率。—种基于IFC标准的建筑信息模型数据集成与交换方法,该方法可实现将IFC格式模型、非IFC格式几何模型和项目进度模型集成到BIM数据库,并根据子模型视图定义从 BIM数据库中提取所需数据,导出为IFC文件。其中BIM数据集成方法包括以下步骤 步骤11,利用IFC文件解析器读取IFC文件,或利用IFC几何模型转化器读取和转化非IFC格式几何模型,或利用Project-IFC转化器读取和转化项目进度信息,并在内存中以IFC实体库定义的格式重建模型;步骤12,选择子模型视图,并利用IFC子模型集成器转化为数据集成约束条件,该条件通过建立数据表以及设置其更新操作、删除操作和新增操作的Sql语句来表示;步骤13,基于步骤12的结果,利用BIM数据访问控制器对BIM数据库进行访问,查询所涉及数据的用户权限和当前签出状态;步骤14,根据步骤12和步骤13的结果,利用BM数据存储器将步骤11的结果存储到BIM数据库。更近一步地,所述的步骤12包括以下步骤步骤121 :读取并解析子模型视图,获取所包含的实体类型及其属性的访问方式 (包括只读、读写和忽略三种);步骤122 :根据所包含的实体类型及IFC模型与BIM数据库二维表的映射关系,确定所涉及的BIM数据库的表,并在内存中建立相应的数据表;步骤123 :基于步骤122的结果,对所包含的各种实体类型,根据其属性的访问方式,设置相应数据表的更新操作、删除操作和新增操作的SQL语句,用于对BM数据库进行操作。所述的步骤14包括一些步骤步骤141 :基于步骤12的结果,根据所建立的每一个数据表所对应的实体类型,在实体库中找到相应的实体容器;步骤142 :基于步骤13的结果,判断是否可以访问该表(是否具有访问权限以及是否已签出),如果不能该表则退出,否则继续;步骤143 :遍历所对应的实体容器中的所有实体,并基于步骤13的结果,判断是否可以访问该记录(是否具有访问权限以及是否已签出),如果不能访问该记录则执行下一记录,如果可以访问该记录,则将该实体映射到所对应的数据表;步骤144 :基于上述步骤的结果,当实体库中的模型全部映射到相应数据表后,即可针对每个数据表批量处理其中的所有记录,实现数据的快速更新;对于大量新增数据的情况,还可以应用批量插入技术(例如ado. net的Bulk Copy)实现数据批量新增。所述的基于IFC标准的建筑信息模型数据集成与交换方法的数据交换方法包括以下步骤步骤21,选择需要提取与交换的BIM子模型所对应的子模型视图,并利用BIM子模型提取器将所选择的子模型视图转化为数据提取约束条件,该条件通过建立数据表以及设置其查询操作的Sql语句来表示;步骤22,基于步骤21的结果,利用BM数据访问控制器对BM数据库进行访问,查询所涉及数据的用户权限和当前签出状态;步骤23,基于步骤21生成的提取约束条件和步骤22的结果,利用BM数据提取器对数据库进行查询,一次性批量提取所需数据,并以IFC实体库定义的格式在内存中重建模型;步骤24,利用IFC生成器将基于步骤23的结果写出为IFC文件。更近一步地,所述的步骤21包括以下步骤步骤211 :读取并解析子模型视图,获取所包括的实体类型及其属性的访问方式 (包括只读、读写和忽略三种);步骤212 :根据所包含的实体类型及IFC模型与BIM数据库二维表的映射关系,确定所涉及的BIM数据库的表,并在内存中建立相应的数据表;步骤213 :对各种所包含实体类型,根据其属性的访问方式(只有忽略与读写两种),设置相应的数据表的查询操作的SQL语句,用于从BIM数据库提取数据。所述的步骤23包括一些步骤步骤231 :基于步骤21的结果,根据所建立的每一个数据表所对应的实体类型,基于步骤13的结果判断是否可以访问该表,如果不能则退出,否则继续;步骤232 :执行相应的查询操作,进行数据提取并存储到对应的数据表;步骤233 :将对所有建立的数据表进行数据提取后,根据BIM数据库与IFC模型的映射关系在内存中以IFC实体库的形式建立建筑信息模型。所述的基于IFC标准的建筑信息模型集成与交换方法通过采用子模型视图定义 BIM子模型,实现面向建筑生命期某一阶段或某一应用的BIM数据集成与交换。所述的基于IFC标准的建筑信息模型集成与交换方法通过数据批量处理技术(例如,ado. net),实现BIM数据集成与交换的批量处理,有效提高了基于关系型数据库的BIM 数据集成与交换的效率。本发明能够支持多种格式的BIM数据转化,为建筑全生命期信息创建、集成、交换与共享BIM数据提供了引擎装置和方法。












I是本发明实施例的总体应用架构示意图。
2是本发明实施例中某一 BIM子模型所包含与IfcDoor (门)相关的实体类型。 3是本发明实施例中BIM数据集成方法一的流程图。
4是本发明实施例中BIM数据集成方法二的流程图。
5是本发明实施例中BIM数据集成方法三的流程图。
6是本发明实施例中BIM子模型集成器的工作流程图。
7是本发明实施例中BIM数据存储器的工作流程图。
8是本发明实施例中BIM数据交换方法的流程图。
9是本发明实施例中BIM子模型提取器的工作流程图。
10是本发明实施例中BIM数据集成器的工作流程图。
具体实施例方式下面结合附图和实施例,对本发明的技术方案做进一步的描述。图I是本发明实施例的总体应用架构示意图,在图中本发明的一种基于IFC标准的建筑信息模型数据集成与交换引擎装置包括以下组件=IFC实体库I、IFC文件解析器2、 IFC几何模型转化器3、Pro ject-IFC转化器4、BM子模型集成器5、BM数据访问控制器6、 BM数据存储器7、BM子模型提取器8、BM数据提取器9和IFC文件生成器10。IFC实体库I :根据IFC大纲,应用面向对象的高级程序语言方法定义了一系列实体类型及其属性,并建立一个容器存放BM模型中各类实体的实例,用于在内存中对BM数据进行表达和组织。IFC文件解析器2 :与IFC实体库I相连,用于实现对IFC文件的读取与解析,并在内存中以IFC实体库I定义的格式重建模型。IFC几何模型转化器3 与IFC 实体库I相连,通过定义的数据映射关系将.dxf,. 3ds和.obj等常见非IFC格式三维几何模型进行解析和转化,并在内存以IFC实体库I定义的格式重建模型。Project-IFC转化器4 :与所述的IFC实体库I相连,通过定义的数据映射关系实现将项目管理系统创建的进度信息转化为IFC进度信息,并以IFC实体库I定义的格式在内存中重建模型。BIM子模型集成器5 :将选定的BIM子模型视图转化为数据集成约束条件,该条件实际上通过建立数据表以及设置其更新操作、删除操作和新增操作的Sql语句来表示,便于BIM数据存储器直接应用。BIM数据访问控制器6 :与BIM子模型集成器及BIM子模型提取器相连,当系统对 BIM数据库进行子模型提取或集成时,基于BIM子模型提取器或BIM子模型集成器的结果, 对BIM数据库进行访问,查询所涉及数据的用户权限和当前签出状态。BIM数据存储器7 : 与所述的IFC实体库、BIM子模型集成器和BIM数据访问控制器相连,根据BIM子模型集成器的数据集成约束条件、BIM数据访问控制器的输出结果以及IFC实体库中的每类实体与数据库二维表的映射关系,将内存中的建筑信息模型存储到BIM数据库中,同时应用数据批量处理技术(例如,ado. net)实现数据的批量存储和修改,提高BIM数据存储和集成效率。BIM子模型提取器8 :将选择的BIM子模型视图转化为数据提取约束条件,该条件通过建立数据表以及设置其查询操作的Sql语句来表示,便于BIM数据存储器直接应用。BIM数据提取器9 :与所述的IFC实体库、BIM子模型提取器和BIM数据访问控制器相连,根据BIM 子模型提取器的数据提取约束条件、BIM数据访问控制器的输出结果以及IFC实体库中的每类实体与数据库二维表的映射关系,从BIM数据库中查询和提取数据,并在内存中以IFC 实体库定义的格式重建模型。IFC文件生成器10 ■ 与IFC实体库I相连,将内存中以IFC实体库格式定义的BIM导出为IFC文件,便于其他BIM应用软件共享数据。图2是本发明实施例中某一 BIM子模型所包含与IfcDoor (门)相关的实体类型。如图所示该子模型包含IfcDoor (门)、IfcDoorStyle (门类型)、 IfcDoorPanelProperties (门板属性集)以及 IfcRelDef inesByType (实体-类型关系)等实体。该BIM子模型所对应的子模型视图关于IfcDoor的定义部分如下所示
<xs:IFCEntity name="IfcDoor" constrain="">
<xs:IFCAttribute name="GlobalId" accessMode="ReadOnly">
<xs:IFCAttribute name="OwnerHistory" accessMode="ReadWrite"> <xs:IFCAttribute name="Name" accessMode=" ReadWrite ">
<xs:IFCAttribute name="Description" accessMode=" ReadWrite ··>
<xs:IFCAttribute name="ObjectType" accessMode=" ReadOnly "> <xs:IFCAttribute name = "ObjectPlacement" accessMode = "Readonly" > <xs:IFCAttribute name="Representation" accessMode="ReadOnly">
<xs:IFCAttribute name="Tag" accessMode="Ignore">
<xs:IFCAttribute name="OverallHeight" accessMode="ReadOnly">
<xs:IFCAttribute name="OverallWidth" accessMode="ReadOnly"> </xs:IFCEntity>根据该子模型视图定义,用户对IfcDoor的OwnerHistory (拥有者历史)、 Name(名称)和Description(描述)具有修改权限,而对其他属性则没有修改权限。应用该子模型视图进行数据集成时,对已有的门实体,如果用户对OwnerHistory、Name和 Description属性进行了修改,则可以将修改保存到数据库,而对于其他属性的修改将不会保存;对于新增的门实体,系统会将其除Tag(它的访问方式为忽略Ignore)外的所有属性保存到数据库。当利用该子模型视图进行数据提取时,对已有的门实体,系统会将除Tag外的所有属性提取出来;对于OwnerHistory这些实体类型的属性还需要提取其该实体的属性。图3是本发明实施例中BIM数据集成方法一的流程图。在步骤11中,应用IFC文件解析器读取IFC文件,并在内存中以IFC实体库定义的格式重建模型。在步骤12中,选择子模型视图,并利用IFC子模型集成器转化为数据集成约束条件,该条件通过建立数据表以及设置其更新操作、删除操作和新增操作的Sql语句来表示。在步骤13中,基于步骤12的结果,利用BM数据访问控制器对BM数据库进行访问,查询所涉及数据的用户权限和当前签出状态。在步骤14中,根据步骤12和步骤13的结果,利用BM数据存储器将步骤11的结果存储到数据库。图4是本发明实施例中BIM数据集成方法二的流程图。与所述方法一所不同的是,在步骤11'中,应用读取和转化非IFC格式几何模型, 并在内存中以IFC实体库定义的格式重建模型用于后续步骤。图5是本发明实施例中BIM数据集成方法三的流程图。所述方法一所不同的是,在步骤11"中,Project-IFC转化器读取和转化项目进度信息,并在内存中以IFC实体库定义的格式重建模型用于后续步骤。图6是本发明实施例中BIM子模型集成器的工作流程图,即步骤12的详细描述。在步骤121中,读取并解析子模型视图,获取所包括的实体类型及其属性的访问方式(包括只读、读写和忽略三种)。在步骤122中,基于步骤121的结果,将子模型视图所含实体类型存于集合 CList中;例如,对于图2展示的子模型视图,CList应该包含IfcDoor、IfcDoorStyle、 IfcReIDefinesByType> IfcDoorPaneIProperties> IfcDoorLiningProperties 以及 IfcPropertySet 等。在步骤123中,对CList进行遍历,对CList中每一类实体进行处理。在步骤124中,针对当前实体类型及其与BIM数据库二维表的映射关系,在内存中建立相应的表数据表。若采用ado. net技术,则数据表即为System. Data. DataTable类的一个对象实例。在步骤125中,根据当前实体类型所有属性的访问方式,设置相应的数据表的更新操作、删除操作和新增操作的SQL语句,用于对BIM数据库进行操作。例如,对于图 2展示的子模型视图,对于IfcDoor对应的数据表的更新操作的Sql语句应该只包含对 OwnerHi stroy >Name>Di script ion的处理,但其新增操作的Sql语句则需要处理GUID等所
有属性。在步骤126中,对于需要进行集成属性类型为实体的属性,将其类型添加到 CList,这样就可以提取该实体属性的属性值;例如,对于图2展示的子模型视图,由于中,将该实体实例根据映射关系在所对应的数据表添加Record。
中,判断对当前实体容器的遍历是否结束,如果是则结束当前循环,否
IfcDoor 的 OwnerHistory 属性的类型为 IfcOwnerHistory,是实体类型,同时 OwnerHistory 属性需要提取,因此需要将IfcOwnerHistory添加到CList。在步骤127中,判断CList是否遍历完毕,如果是则结束该流程,否则继续遍历 CList0图6是实施例中BIM数据存储器的工作流程图,即步骤14的详细描述。在步骤141中,基于步骤12的结果,遍历所建立的所有数据表,并确定当前数据表所对应的实体类型。在步骤142中,基于步骤13的结果判断是否可以访问该表,如果不可以则退出,否则继续。在步骤143中,遍历实体库中的当前实体类型所对应的实体容器,对每一个实体实例进行处理。在步骤144中,基于步骤13的结果判断是否可以访问该记录,如果不能,则退出该循环,否则继续。在步骤145在步骤146
则继续遍历。在步骤147中,判断对所有数据表的遍历是否结束,如果是则结束当前循环,否则继续遍历。在步骤148中,基于上述步骤的结果,即可针对每个数据表批量处理其中的所有记录,实现数据的快速更新。对于大量新增数据的情况,还可以应用数据库提供的批量插入技术(例如ado. net的BulkCopy)实现数据批量新增。图7是本发明实施例建筑信息模型数据交换方法的流程图。在步骤21中,选择需要提取与交换的BIM子模型所对应的子模型视图,并利用BIM 子模型提取器将所选择的子模型视图转化为数据提取约束条件,该条件通过建立数据表以及设置其查询操作的Sql语句来表示。在步骤22中,基于步骤21的结果,利用BM数据访问控制器对BM数据库进行访问,查询所涉及数据的用户权限和当前签出状态。在步骤23中,基于步骤21的生成的提取约束条件和步骤22的结果,利用BM数据提取器对数据库进行查询,提取相应数据,并以IFC实体库定义的格式在内存中重建模型。在步骤24中,利用IFC生成器将基于步骤23的结果写出为IFC文件。图8是实施例中BM子模型提取器的工作流程图,即步骤21的详细描述。在步骤211中,应用BIM子模型集成器读取并解析子模型视图,获取所包括的实体类型及其属性的访问方式(包括读写和忽略三种)。在步骤212中,基于步骤121的结果,将子模型视图所含实体类型存于几何CList 中。在步骤213中,对CList进行遍历,对CList中每一类实体进行处理。在步骤214中,针对当前实体类型及其与BIM数据库二维表的映射关系,应用ado 技术,在内存中建立相应的数据表。在步骤215中,根据当前实体类型所有属性的访问方式,设置相应的数据表的查询操作的SQL语句,用于对数据库进行数据查询和提取;例如,对于图2展示的子模型视图, 对于IfcDoor对应的数据表的查询操作的Sql语句应该不包含对Tag属性的处理。在步骤216中,对于需要进行集成且属性类型为实体的属性,将其类型添加到 CLi st,这样就可以提取该属性的实际值。在步骤217中,如果CList以及遍历完毕,则结束该流程,否则继续比遍历CList。图9是实施例中BIM数据集成器的工作流程图,即步骤23的详细描述。在步骤231中,基于步骤12的结果,遍历所建立的所有数据表,并确定当前数据表所对应的实体类型。在步骤232中,基于步骤13的结果判断是否可以访问该表,如果不可以则退出,否则继续。在步骤233中,根据步骤231的结果,从数据库中一次性批量提取数据并存储到相应的数据表。在步骤234中,遍历当前数据表中的所有记录,对每一个实体实例进行处理。在步骤235中,基于步骤13的结果判断对该记录的访问权限,如果没有权限则删除该记录,否则不做操作。在步骤236中,判断对当前数据表的遍历是否结束,如果是则结束当前循环,否则继续遍历。在步骤237中,判断对CList的遍历是否结束,如果是则结束当前循环,否则继续遍历。在步骤238中,基于上述步骤的结果和IFC模型与关系型数据库的映射关系,以 IFC实体库定义的格式在内存中重建模型。
权利要求
1.一种基于IFC标准的建筑信息模型数据集成与交换引擎装置,该引擎装置以基于 IFC标准和关系数据库(Oracle, Microsoft SQL Server和MySQL等)建立的BIM数据库为基础,实现IFC格式模型解析、非IFC格式建筑信息转化、BIM子模型的提取与集成以及 BIM数据存储、交换和访问控制等功能,为建筑全生命期各阶段BIM数据的集成、交换、共享和应用提供技术支持,其特征在于,包括以下组件IFC实体库根据IFC大纲,应用面向对象的高级程序语言定义各类实体及其属性,并对各类实体分别建立一个容器存放BIM中各类实体的实例,用于在内存中对BM进行表达、 组织和管理,便于模型的显示、查看与调用。IFC文件解析器与所述的IFC实体库相连接,实现对IFC文件的读取与解析,并在内存中以IFC实体库定义的格式重建模型。IFC几何模型转化器与所述的IFC实体库相连,通过定义的数据映射关系将.dxf,. 3ds和.obj等常见非IFC格式三维几何模型转化为IFC格式模型,并以IFC实体库定义的格式在内存中重建模型。PiOject-IFC转化器与所述的IFC实体库相连,通过定义的数据映射关系将项目管理系统创建的进度信息转化为IFC格式进度信息,并以IFC实体库定义的格式在内存中重建模型。BIM子模型集成器将选定的BIM子模型视图转化为数据集成约束条件,该条件实际上通过建立相应的数据表以及设置其更新操作、删除操作和新增操作的Sql语句来表示,便于BIM数据存储器直接应用。BIM数据访问控制器■ 与BIM子模型提取器及BIM子模型集成器相连,当系统对BIM数据库进行子模型提取或集成时,基于BIM子模型提取器或BIM子模型集成器的输出结果,利用BIM数据访问控制器对BIM数据库进行访问,查询所涉及数据的用户权限和当前签出状态。BIM数据存储器与所述的IFC实体库、BIM子模型集成器和BM数据访问控制器相连, 根据BIM子模型集成器的数据集成约束条件、BIM数据访问控制器的输出结果以及IFC实体库中的每类实体与数据库二维表的映射关系将内存中的模型数据存储到BIM数据库中, 同时应用数据批量处理技术(例如ado.net)实现数据的批量存储和修改,提高BIM数据存储和集成效率。BIM子模型提取器将选择的BIM子模型视图转化为数据提取约束条件,该条件通过建立数据表以及设置其查询操作的Sql语句来表示,便于BIM数据存储器直接应用。BIM数据提取器与所述的IFC实体库、BIM子模型提取器和BM数据访问控制器相连, 根据BIM子模型提取器的数据提取约束条件、BIM数据访问控制器的输出结果以及IFC实体库中的每类实体与数据库二维表的映射关系,从BIM数据库中查询和提取数据,并在内存中以IFC实体库定义的格式重建模型。IFC文件生成器与所述的IFC实体库相连,实现将内存中以IFC实体库格式定义的建筑信息模型导出为IFC文件,便于其他BIM应用软件共享数据。
2.根据权利要求I所述的基于IFC标准的建筑信息模型数据集成与交换引擎装置,其特征在于,所述的BIM数据访问控制器包括用户权限控制器根据用户权限设置,控制用户对BM数据的访问。鉴于BM数据面向构件的特性及实际需要,所述用户权限控制器可实现记录级别的用户权限控制。并发访问控制器采用数据签入签出机制,实现记录级别的并发访问控制。其基本原理如下其基本原理如下当某一用户需要修改某一记录时,签出该记录,则其他用户无法对签出的记录进行修改,而当其他用户对签出的记录进行查看时则提醒该记录已被签出修改。当该用户完成修改后,保存数据时则签入该记录,此后其他用户便可签出该数据进行进一步的修改。
3.根据权利要求I所述的基于IFC标准的建筑信息模型集成与交换引擎装置,其特征在于,通过采用子模型视图定义BM子模型,实现面向建筑生命期某一阶段或某一应用的 BIM数据集成与交换。
4.根据权利要求I所述的基于IFC标准的建筑信息模型集成与交换引擎装置,其特征在于,通过采用数据批量处理技术(例如,ado. net),实现BM数据集成与交换的批量处理, 有效提闻了基于关系型数据库的BIM数据集成与交换的效率。
5.一种基于IFC标准的建筑信息模型数据集成与交换方法,该方法可实现将IFC格式模型、非IFC格式几何模型和项目进度模型集成到BIM数据库,并根据子模型定义从BIM数据库中提取所需数据并生成IFC文件,其特征在于,BIM数据集成方法包括以下步骤步骤11,利用IFC文件解析器读取IFC文件,或利用IFC几何模型转化器读取和转化非IFC格式几何模型,或利用Project-IFC转化器读取和转化项目进度信息,并在内存中以 IFC实体库定义的格式重建模型;步骤12,选择子模型视图,并利用IFC子模型集成器转化为数据集成约束条件,该条件通过建立数据表以及设置其更新操作、删除操作和新增操作的Sql语句来表示;步骤13,基于步骤12的结果,利用BIM数据访问控制器对BM数据库进行访问,查询所涉及数据的用户权限和当前签出状态;步骤14,根据步骤12和步骤13的结果,利用BIM数据存储器将步骤11的结果存储到 BIM数据库。
6.根据权利要求5所述的基于IFC标准的BIM数据集成与交换方法,其特征在于,所述的BIM数据集成方法的步骤12包括以下步骤步骤121 :读取并解析子模型视图,获取所包含的实体类型及其属性的访问方式(包括只读、读写和忽略三种);步骤122 :根据所包含的实体类型及IFC模型与BIM数据库二维表的映射关系,确定所涉及的BIM数据库的表,并在内存中建立相应的数据表;步骤123 :对各种所包含实体类型,根据其属性的访问方式,设置相应的数据表的更新操作、删除操作和新增操作的SQL语句,用于对BIM数据库进行操作。
7.根据权利要求5所述的基于IFC标准的BIM数据集成与交换方法,其特征在于,所述的BIM数据集成方法的步骤14包括以下步骤步骤141 :基于步骤12的结果,根据所建立的每一个数据表所对应的实体类型,在实体库中找到所对应的实体容器;步骤142 :基于步骤13的结果判断是否可以访问该表(是否具有访问权限以及是否已签出),如果不能则退出,否则继续;步骤143 :遍历所对应的实体容器中的所有实体,并基于步骤13的结果,判断是否可以访问该记录(是否具有访问权限以及是否已签出),如果不能则执行下一记录,如果可以, 则将该实体映射到所对应的数据表;步骤144 :基于上述步骤的结果,当实体库中的模型全部映射到相应数据表后,即可针对每个数据表批量处理其中的所有记录,实现数据的快速更新。对于大量新增数据的情况, 还可以应用批量插入技术(例如ado. net的Bulk Copy)实现数据批量新增。
8.根据权利要求5所述的基于IFC标准的BIM数据集成与交换方法,其特征在于,BIM 数据交换方法包括以下步骤步骤21,选择需要提取与交换的BIM子模型所对应的子模型视图,并利用BIM子模型提取器将所选择的子模型视图转化为数据提取约束条件,该条件通过建立数据表以及设置其查询操作的Sql语句来表示;步骤22,基于步骤21的结果,利用BIM数据访问控制器对BIM数据库进行访问,查询所涉及数据的用户权限和当前签出状态;步骤23,基于步骤21的生成的提取约束条件和步骤22的结果,利用BIM数据提取器对数据库进行查询,一次性批量提取相应数据,并以IFC实体库定义的格式在内存中重建模型;步骤24,利用IFC生成器将基于步骤23的结果写出为IFC文件。
9.根据权利要求8所述的BIM数据交换方法,其特征在于,所述的步骤21包括以下步骤步骤211 :读取并解析子模型视图,获取所包括的实体类型及其属性的访问方式(包括只读、读写和忽略三种);步骤212 :根据所包含的实体类型及IFC模型与BIM数据库二维表的映射关系,确定所涉及的BIM数据库的表,并在内存中建立相应的表数据表;步骤213 :对各种所包含实体类型,根据其属性的访问方式(只有忽略与读写两种),设置相应数据表的查询操作的SQL语句,用于从BM数据库提取数据。
10.根据权利要求8所述的BIM数据交换方法,其特征在于,所述的步骤23包括以下步骤步骤231 :基于步骤21的结果,根据所建立的每一个数据表所对应的实体类型,基于步骤13的结果判断是否可以访问该表,如果不能则退出,否则继续;步骤232 :执行相应的查询操作进行数据提取并存储到对应的数据表;步骤233 :将对所有建立的数据表进行数据提取后,根据BIM数据库与IFC模型的映射关系,在内存中以IFC实体库的形式建立建筑信息模型。
11.根据权利要求5所述的基于IFC标准的建筑信息模型集成与交换方法,其特征在于,通过采用子模型视图定义BM子模型,实现面向建筑生命期某一阶段或某一应用的BM 数据集成与交换。
12.根据权利要求5所述的基于IFC标准的建筑信息模型集成与交换方法,其特征在于,数据批量处理技术(例如,ado. net),实现BIM数据集成与交换的批量处理,有效提高了基于关系型数据库的BIM数据集成与交换的效率。
全文摘要
本发明属于建筑业信息技术领域,为建筑信息模型(Building Information Model,BIM)的创建和应用,提供一种基于IFC标准的建筑信息模型数据集成与交换引擎装置和方法。以基于IFC标准和关系型数据库建立的BIM数据库为基础,实现IFC格式BIM解析,非IFC格式建筑信息转化,BIM子模型的提取和集成,BIM数据存储、交换以及访问控制,该引擎装置包括IFC实体库、IFC文件解析器、IFC几何模型转化器、Project-IFC转化器、BIM子模型集成器、BIM子模型提取器、数据访问控制器、BIM数据存储器、BIM数据提取器以及IFC文件生成器等组件。本发明支持多种格式的BIM数据转化,可实现面向建筑生命期各阶段或不同应用的BIM数据集成与交换。采用数据批量处理技术,有效提高了BIM数据集成与交换的效率。
文档编号G06F17/30GK102609417SQ201110023930
公开日2012年7月25日 申请日期2011年1月21日 优先权日2011年1月21日
发明者余芳强, 刘强, 张建平, 张旭磊, 张洋, 王勇, 胡振中 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1