BIM数据标准IFC发展分析
2020-05-12赖华辉钟祖良赵云凡
赖华辉, 侯 铁, 钟祖良, 赵云凡
(1. 深圳市市政设计研究院有限公司, 广东 深圳 518029, 2. 重庆大学 土木工程学院, 重庆 400045;3. 上海交通大学 船舶海洋与建筑工程学院, 上海 200240)
近年来,BIM(Building Information Modeling)技术及相关软件已被广泛应用在国内外建筑领域,以促进建设项目全生命周期过程中各方数据的共享与交换。为规范建设项目的数据存储、交互与管理过程,bSI(buildingSMART International,前身为IAI,International Alliance for Interoperability)研究并发布了建筑领域的一系列标准,如IFC(Industry Foundation Classes),IDM(Information Delivery Manual),MVD(Model View Definition),BCF(BIM Collaboration Format)等。其中,IFC标准是bSI最早研究的数据存储标准,且一直在更新维护。IFC标准的目的是促进建设项目各方在统一的数据标准基础上进行有效的数据交互,以实现各业务应用。现阶段,国内外很多学者基于IFC标准开展研究,如能耗分析[1]、GIS数据转换[2]、算量计价[3]、施工管理[4]等。建筑领域很多软件也研发了IFC数据接口,以支持IFC模型数据的输入与输出。
然而,尽管学术界和工业界已开展IFC的研究与应用,但在建设项目实际应用中,基于IFC标准的BIM数据共享与交换过程仍出现数据不一致的问题,如数据丢失、数据失真等。同时,由于建筑从业人员对IFC标准的认识不足,导致IFC标准对数据交互的作用受到质疑,延缓了IFC标准的深入推广与应用。特别地,我国政府目前也在大力推广BIM技术应用,如建质函〔2015〕159号《关于推进建筑信息模型应用的指导意见》,充分了解并准确使用BIM数据标准IFC,对加快推动建筑业BIM技术深化应用具有重要作用。
鉴于上述原因,本文以IFC标准的发展历史为切入点,系统分析IFC标准关于建筑信息的表达,并剖析建筑领域各软件关于IFC数据的解析问题及其产生原因,进而深入探讨IFC标准的未来发展。通过本文分析与讨论,以期使读者对IFC标准有更清晰的认识,促进IFC标准在建设项目全生命周期过程中的研究与应用。
1 IFC发展追溯
1.1 提出背景
经过不断的发展,IFC标准已成为不同学科和不同软件之间BIM数据交互的事实标准[5]。BIM技术的概念可追溯至Eastman等[6]在1974年提出的“Building Description System(建筑描述系统)”,但限于当时的科学技术水平,并未引起较大关注与影响。到2002年,Laiserin采用Building Information Modeling进行报道[7],该理念开始被广泛推广。同时,随着BIM软件厂商的大力宣传,BIM技术开始被广泛应用。事实上,IFC标准在BIM技术应用前已被提出。
在二十世纪90年代,建筑领域出现了具有不同功能的软件,但由于缺乏共同的数据标准,软件之间的数据共享与交换需要研发针对性的一对一数据接口,数据交互非常困难。因此,12家美国公司在1994年召开会议,讨论制定开放的、公共的数据标准,以实现各软件之间的数据共享与交换。这12家公司包括Autodesk,ArchiBus,HOK,Primavera等知名企业[8],涉及建筑领域的软硬件、设计、研究、应用等。1997年,上述12家公司共同创立IAI组织,致力于在建筑领域研究开放的、公共的数据标准,以支持建设项目全生命周期各专业的数据表达与交互。IAI组织的成立促进了IFC标准的研究,并为其可持续发展提供了稳固的基础。
1.2 发展历程
经过业界各专家持续不断的努力,借鉴STEP标准,IFC标准的第一个版本IFC1.0在1996年12月正式发布。经过20多年的发展,最新发布的IFC版本是IFC4.1,其发展历程可见图1。应注意的是,IFC标准在2005年被正式采纳为ISO标准(ISO/PAS 16739: 2005)[9],肯定了IFC标准在建筑领域数据交互方面的重要作用。
发展至今,IFC标准不仅在专业领域范围,也在数据结构表达与定义方面进行了拓展与优化。表1总结了不同IFC版本所包含的实体Entities、类型Types以及属性集Property sets。其中,IFC 4.1包含801个Entities、400个Types、413个Property sets,囊括建筑、结构、暖通、电气和施工管理等8个专业领域。这些数据反映了IFC标准在建筑信息表达方面的丰富性。已有研究表明,IFC标准能较好地描述建筑产品的几何尺寸[10]、能耗[11]、进度[12]以及成本[13]等信息。
图1 IFC标准发展历程
表1 不同版本的IFC标准组成
版本IFC1.5.1IFC2.0IFC2xIFC2x2 Add1IFC2x3IFC2x3 TC1IFC4IFC4 Add1IFC4 Add2IFC4.1实体 Entities186290370329653653766768776801类型 Types95157229313327327391396397400属性集 Property sets——83312312317408410413413
2 IFC标准的数据表达研究
IFC标准的语义非常丰富,能够表达建筑、结构、电气、暖通、给排水等多专业,但相应的IFC模型数据结构复杂且数据量大,不利于初学者和建筑从业人员快速读懂和有效应用IFC模型数据。因此,有必要分析IFC标准关于建设项目数据表达的基本概念和整体结构。本章主要介绍IFC标准的框架结构、实体数据、模型数据三方面。
2.1 IFC标准框架结构
IFC标准由四个层级组成,分别为资源层(Resource Layer)、核心层(Core Layer)、交互层(Interoperability Layer)和领域层(Domain Layer)。图2展示了IFC4.1标准的框架结构。应说明的是,图2是英文版IFC4.1标准框架[14]的中文翻译结果。资源层描述了建设项目中可重复使用的基本数据,如几何资源、属性资源和材料资源等;核心层主要定义了IFC的基本结构、基础关系和公用概念等;交互层总结了建设项目各专业的一些通用构件实体;领域层则总结了各专业的特定构件实体。各层IFC实体之间的引用遵循以下原则:上层实体可引用下层实体,但下层实体不能引用上层实体。在实际应用中,用户可根据需要调用IFC模型中不同类型的数据。
图2 IFC4.1标准的框架
2.2 实体的IFC定义
借鉴STEP标准,IFC标准同样采用形式化的EXPRESS语言作为逻辑规范的描述。EXPRESS定义了超类(SuperType)和子类(SubType)的概念,建立了IFC实体之间的继承关系。以柱实体IfcColumn为例,其EXPRESS描述如下。由于大部分软件支持IFC2x3的解析,本文主要采用IFC2x3标准的相关定义进行解释说明。
ENTITY IfcColumn
SUBTYPE OF (IfcBuildingElement);
END_ENTITY;
IfcBuildingElement是IfcColumn的超类,对应地,IfcColumn是IfcBuildingElement的子类。IfcColumn继承了IfcBuildingElement的所有属性,如图3所示。通过继承关系的追溯,IfcColumn的最上层超类实体为IfcRoot。除资源层的实体,实体IfcRoot也是其他所有实体的超类。
图3 IfcColumn属性(IFC2x3)
EXPRESS定义的实体属性有三类:显式属性、导出属性、反向属性。图3的实体IfcColumn从超类实体中继承了26个属性,其中,8个显式属性和18个反向属性。应说明的是,不同学者可能有不同的属性名称定义,如显式属性可称为直接属性,导出属性可称为派生属性,反向属性可称为反属性、逆向属性/逆属性。本文的属性名称以GB/T 16656.11-2010[15]为准。在具体的IFC模型文件中,实体的显式属性可通过实体本身的实例语句定义,导出属性需通过既定的计算得到具体值,反向属性需通过其他实体进行表达。第2.3节将结合IFC模型文件,分析IFC实体各属性的具体使用。
2.3 模型的IFC表达
与STEP物理文件相同,IFC模型文件根据ISO 10303-21标准定义,主要分为头文件和数据文件两部分。头文件主要定义IFC模型文件的创建时间、创建软件和IFC版本等基本信息;而数据文件主要存储建设项目的各类数据。此处,通过模型文件的IfcColumn实例及相关实例语句分析构件的IFC表达方法,如图4所示(为便于分析,图中仅列出部分IFC实例语句)。
图4 IFC模型文件分析(IFC2x3)
从图4左侧可见,实体IfcColumn的8个显式属性通过#240实例语句的8个属性值进行直接表达。其中,属性OwnerHistory,ObjectPlacement,Representation通过引用其他语句进行具体的表达。例如,属性Representation通过实例#237表达几何外观。经分析,该构件通过矩形实体IfcRectangleProfileDef描述矩形截面(300 mm× 300 mm)。除实体IfcRectangleProfileDef,可通过其他实体描述相同形状,如实体IfcArbitraryClosedProfileDef。IFC标准允许采用不同方式表达相同信息[16]。经过分析IFC模型文件,图4右侧绘制了实体IfcColumn反向属性HasAssociations的关系图。材料实体IfcMaterial通过实体IfcRelAssociatesMaterial的引用,关联至实体IfcColumn,描述了属性HasAssociations的具体信息。可见,IFC实体的反向属性一般通过关联实体关联外部信息。
在上述的分析中,IFC模型文件的IFC实例语句与IFC标准的实体定义进行了对应,分析得出建设项目模型的具体表达,可进一步对IFC模型数据进行加工处理。
3 IFC数据交互过程存在的问题
3.1 软件对IFC标准的验证情况研究
在建筑领域,很多软件具有输入或输出IFC的数据接口[17],以支持IFC模型文件的解析。其中,部分软件已通过bSI的官方验证,如表2所示(截止至2019年4月)[18]。
表2 软件的IFC官方验证
作为官方验证,bSI目前主要采用IFC2x3 CV 2.0(IFC2x3 Coordination View 2.0)作为IFC数据验证的基准模板,对不同BIM软件进行IFC数据输入或输出的验证。从表2可见,目前有33款软件通过IFC数据的输入验证,而通过IFC数据输出验证的软件数量是27款。其中,只有15款软件同时通过输入和输出的验证。由于各软件的专业性不同,IFC输出验证分为建筑、结构、MEP三个专业方向。例如,MagiCAD软件通过了IFC2x3 CV 2.0-MEP的输出验证。
目前,bSI主要验证各软件对IFC2x3数据的解析情况,IFC4的验证处于进行状态,如bSI正在验证Revit,ArchiCAD,Tekla Structures等软件对IFC4的解析。建筑领域的软件众多,还有大量的软件需进一步完善IFC输入或输出的数据接口。
3.2 IFC数据交互的不一致问题
bSI提供了IFC官方验证方法,但各软件采用IFC进行数据交互时仍存在数据不一致的问题。这是因为官方验证流程主要测试标准建筑或标准构件[19],对于实际工程项目的复杂构件,即使是通过IFC验证的软件,可能也不能100%准确解析该项目的IFC数据。相比于交换数据质量的验证,IFC验证更侧重于软件关于IFC数据的交换能力[20]。
目前,国内外学者已开展了关于不同软件之间数据交互测试的研究[21,22]。这些研究表明,不同软件在采用IFC进行数据共享和交换过程中,数据不一致问题频繁发生,如对象类型不一致、对象丢失和几何外观错误等。为深入分析多专业软件基于IFC标准的数据交互过程,笔者所在团队曾设计多专业软件关于IFC模型的输入与输出实验[23],测试软件包括Revit,ArchiCAD,Tekla Structures,MagiCAD等主流软件,测试对象包括建筑、结构、MEP等专业的典型构件。实验总结了IFC模型输入输出前后,在构件类型、几何、颜色、属性、关系等方面的不一致问题,并揭示了形状复杂构件的数据不一致问题最为突出。
尽管现阶段各软件在采用IFC进行数据交互时出现各种问题,但能否说明基于IFC标准的数据交互技术路线是不可行的?第4章将对该问题进行深入的讨论分析。
4 发展IFC标准的挑战和未来展望
IFC标准从1996年发布的IFC1.0至今,已有二十余年,虽然已得到建筑领域多种软件的支持,但仍存在一些内部和外部的问题,在IFC标准未来发展的道路上有待进一步解决。
4.1 软件对IFC模型数据的解析差异
根据第3.1节,bSI目前采用IFC2x3 CV 2.0作为IFC数据验证模板。同时,IFC2x3 CV 2.0也是大部分软件解析IFC数据的内嵌模板[24]。CV(Coordination View)是第一个官方发布的IFC子集,即MVD。该MVD可实现建设项目建筑、结构、MEP等专业之间的数据共享与交换。在默认情况下,软件按照该MVD模式输入或输出IFC模型数据。现阶段,bSI也发布了其他MVD,如Ifc2x3 Basic FM Handover View,IFC4 Reference View和IFC4 Design Transfer View。笔者曾尝试采用Revit软件,将同一模型按照不同MVD输出,得到了具有不同表达方式的IFC模型数据(具体研究成果将在下一篇文章中整理发布)。这些MVD均是IFC的子集,定义了建设项目不同数据要求。因此,对于MVD中未定义的数据,软件不能把该数据输出至IFC模型文件中。这也是现阶段BIM模型输出为IFC数据时,部分数据丢失的原因之一,如构件的参数化约束关系、构件之间关联关系等。总结而言,当软件根据不同MVD解析IFC模型数据时,可能得到不同的数据解析结果。这是不同软件对同一IFC数据解析产生差异的原因之一。
而产生差异的第二个原因,也是最主要的原因,是软件自身数据结构与IFC数据之间的映射关系。在笔者设计的数据交互实验中[23],各软件采用默认视图解析IFC模型数据,即IFC2x3 CV 2.0。在IFC模型输入和输出的过程中,存在两种数据映射:(1)软件将自身创建的专业模型输出为IFC数据,即软件内部数据映射为IFC数据;(2)当输入其他软件创建的IFC模型时,软件将IFC数据映射到软件内部数据。由于软件对IFC数据的不完全映射,导致软件在解析IFC模型时,出现IFC模型数据的丢失、错漏等问题。在交互实验中[23],当采用IFC解析较好的软件,数据解析的准确性较高。因此,各软件厂商需进一步完善IFC数据接口,以提高IFC数据解析的准确性。
4.2 基于IFC标准的建筑领域构件表达方法扩展
IFC标准涉及建筑、结构、电气、HVAC等多个领域,但主要面向民建项目。虽然IFC标准也提供了通用方法表达其他项目的专业信息,但相关的表达缺乏专业性,且可能需要更多的数据量。如桥梁项目中桥墩盖梁和桥台盖梁的几何外观表达,采用IFC标准的面片方式表达,是一种非参数化的表达方法。不能准确、高效地表达专业信息,这是IFC标准在其他工程项目应用中受阻的主要原因。
应注意的是,IFC标准仍在不断发展完善。IFC标准在民建项目的表达已相对完善。近几年来,bSI已组织开展了IFC标准在市政基础项目的扩展研究,如IFC-Road(道路)[25]、IFC-Bridge(桥梁)[26]、IFC-Tunnel(隧道)[27]、IFC-Railway(铁路)[28]等项目,并纳入了IFC5的研发计划中。部分研究成果已发布在IFC4.1(正式发布状态)和IFC4.2(草稿状态)中。例如,在IFC4.2的架构中,已新建IfcFacility,IfcBridge等实体,为市政基础项目的IFC扩展奠定了基础。
可以预期,后续发布的IFC标准将涉及市政基础项目更多信息的专业化定义,IFC标准对建筑领域各项目信息的表达将日趋完善。
4.3 IFC标准的政策支持
除建筑行业相关专家对IFC标准的支持,国内外建筑业相关机构也发布了标准规范,不断推动IFC标准在建设项目中的BIM应用。此处以美国和我国为例。
美国BIM标准(NBIMS)从2007年发布的V1.0开始,至今已发布至V3.0(2015)。该标准规定了基于IFC的建设项目不同专业之间的数据交互要求,对BIM项目的IFC应用起到了促进作用。其中,该标准提出采用BIM能力成熟度模型(Capability Maturity Model,CMM)评估项目的BIM应用情况[29]。NBIMS给出两类CMM:表格式CMM(Tabular CMM)和交互式CMM(Interactive CMM)。这两类CMM均有11项评价指标(如数据丰富性、生命周期、互用性/支持IFC),每项指标的分值共有10个等级。其中,交互式CMM根据11项评价指标的重要性划分了权重比例,而互用性/支持IFC格式的权重比例最高。可见NBIMS对IFC标准的重视程度。
我国BIM应用虽然起步较晚,但近年来不同建设项目已广泛使用BIM技术。为规范BIM应用,我国不同机构研究并发布了相关的BIM标准。表3列举了部分BIM标准及其与IFC标准的关系。从2007年发布的《建筑对象数字化定义》开始,IFC标准逐渐得到我国建筑业的重视,且逐渐加强了与国际标准IFC的对接关系。
虽然并非是强制性要求,但IFC标准被推荐为各软件之间交互的数据格式,促进了建设项目各方之间的数据共享与交换。随着政府机构力度的加大,IFC标准将被广泛接受并深入应用到实际项目中。
表3 我国部分BIM标准与IFC标准的关系一览
4.4 IFC标准的发展预测
虽然IFC标准现阶段仍存在一些问题,但作为建筑领域公认的、开放的BIM数据标准,IFC标准的发展必将逐渐成熟和稳定。参考Gartner新兴技术成熟度曲线[30],可总结IFC标准的发展历程,如图5所示。Gartner新兴技术成熟度曲线将新技术发展划分为五个阶段:技术萌芽期、期望膨胀期、泡沫破裂低谷期、稳步爬升恢复期、生产成熟期。对照IFC标准的发展历程,可总结为如下几个阶段:
技术萌芽期:IFC1.0(1996)至IFC2.0(1999)。此阶段搭建完成了IFC标准的技术框架,应用领域的数据表达还相对较少。发展至IFC1.5时,才有了稳定的开发平台,并开始被其他软件支持。
期望膨胀期:IFC2.0(1999)至IFC2x3 TC1(2007)。IFC标准在此阶段发展迅速,每隔一定时间发布了不同的更新内容,并得到广泛关注。例如,IFC2x建立了稳定的基础框架,并引入IfcXML规范;IFC2x2增加了多个专业领域;经质量改进,IFC2x3成为目前BIM软件支持最普遍的版本。
泡沫破裂低谷期:IFC2x3 TC1(2007)至IFC4.1(2018)。IFC2x3 TC1至IFC4的发布,期间相差了近6年,IFC4与IFC4.1之间的发展时间也相差了约5年。在这11年中,由于面临各种问题,如资金、软件、人员等方面,IFC标准发展缓慢且艰难。
笔者认为,目前IFC标准的发展仍处于泡沫破裂低谷期阶段,但IFC标准在逐步发展,且开始进入低谷阶段的拐点范围。近些年,随着BIM技术及相关软件的深入应用,软件之间的数据交互需求越来越大,且越来越多的软件开始支持IFC的解析。同时,bSI也在不断完善IFC标准,覆盖更多专业领域的信息表达。因此,笔者预测,随着IFC5的发布,IFC标准将走出泡沫破裂低谷期而进入稳步爬升恢复期,并逐步进入成熟期。
图5 IFC标准发展路线预测
针对第4.1~4.3节所总结的问题,可通过以下三方面促进IFC的发展:
(1)提高各软件对IFC数据的解析质量。当且仅当软件能够准确解析IFC模型数据,才能保证建设项目全生命周期数据的有效共享与交换。
(2)完善IFC标准对建设项目各领域的数据表达。IFC标准支持建设项目不同类型的数据表达,但目前在市政基础领域的表达还不够完善,仍需要更多的行业专家投入IFC标准的研究,不断完善IFC标准。
(3)加大行业对IFC标准的支持与推广力度。目前建筑领域相关标准或规范建议在BIM应用中使用IFC标准,但还没有得到广泛的执行,仍需要不断普及和推广。
5 结 语
本文从BIM数据标准IFC的历史、现状、未来等方面,对IFC标准进行了深入分析,以期使读者对IFC标准有更全面、更清晰的认识。发展至今,虽然IFC标准面临各种问题,但IFC标准是建筑领域中公认的、开放的数据标准,暂时未见更有效的公共数据标准可以替代IFC,而且IFC标准对数据交互也起到了较大的促进作用。从快速发展到低谷阶段,再到稳定、成熟阶段,该发展曲线符合新技术的发展历程。因此,随着IFC标准的不断完善,相信IFC标准所面临的各种问题将得到有效解决,并发展成为建设项目全生命周期BIM应用过程中高效的数据交互标准。