施平望, 林良帆, 邓雪原
(上海交通大学土木工程系,上海 200240)
基于IFC标准的建筑构件表达与管理方法研究
施平望, 林良帆, 邓雪原
(上海交通大学土木工程系,上海 200240)
工业基础类标准(IFC)是BIM的数据存储标准,定义了建筑项目全生命周期的各种对象与类。采用实例分析的方法,针对基于IFC标准的建筑构件的表达方法作了详细的介绍与描述,并且对基于IFC标准的建筑构件管理方法作了比较完善的分析,将为构建基于IFC标准的构件库奠定基础。
工业基础类标准;建筑构件;构件库
1.1互操作性与工业基础类
互操作性(interoperability)可以定义为不同系统或组织一起协同工作的能力。建筑工程施工(architecture engineering construction, AEC)和设施管理(facilities management, FM)行业涵盖了各种领域,需要多样化的信息和模型进行共享。目前各种BIM软件基本满足这个需求,但其内部对数据模型的表达方式却各不相同。没有一个独立的应用系统可以提供AEC/FM行业需要的所有功能[1]。开发中性文件格式如DXF、IGES和SAT,可以实现不同软件系统之间文件的交换,但这些文件交换的内容仅仅局限于几何实体。为了使数据交换成为现实,一个早期的方法是对不同软件的编码规则进行翻译转化,但这种方法的成本却很高[2]。一项由M cGraw-Hill公司主持的研究表明,软件应用程序之间互操作性的缺失,是影响BIM发挥潜在功能的限制因数[3]。
在AEC行业,工业基础类(industry foundation classes, IFC)架构是目前最为全面、公开的面向对象的数据模型[4],涵盖了工程设计领域各个阶段满足全部商业需求的数据定义。IFC标准的第一个版本于 1997年 1月由产业交换性联盟组织(industry alliance for interoperability, IAI,现为BuildingSMART international)发布。此后经过几年的努力,IFC信息模型的覆盖范围与模型框架都有了很大的改进,并于 2005年正式成为国际标准ISO/PAS 16739[5],目前最新的发布版本为IFC2x4[6]。IFC标准在BIM应用领域已被多个国家作为数据标准,美国国家BIM标准中将IFC作为主要的参考标准。支持IFC文件读取的各类设计软件也日益增多,2011年,BuildingSMART公布了所有支持IFC标准的软件[7]。IFC 采用基于对象的描述方式,并具有很强的描述能力,能表达复杂的工程对象信息。
IFC对工程对象的表达方法研究是IFC标准更深、更广应用的基础。邱奎宁等[8]对IFC标准进行了基础性剖析,打开了国内对IFC标准研究的大门;余芳强等[9]通过分析IFC标准的实体定义和分类,构建IFC元数据模型,最终实现了根据应用需求快速生成 BIM 子模型视图(model view definitions, MVD),支持从整体BIM模型中提取所需的子信息模型。在对IFC文件的结构形式有了清晰的认识后,能完成对构件信息的提取和分析[10],可以有效地减小模型文件的大小,进一步可研究建筑模型到结构分析模型的转换[11],并可针对不同专业对模型视图进行有效的管理,实现基于三维模型的协同设计[12]。兼容IFC标准,利用数据库基于对象的信息存储与管理技术,已经成为目前的应用研究热点[13-14]。通过研究IFC标准对构件的表达方法,结合数据库技术可以搭建基于IFC标准的构件库。文献[14]初步建立了基于IFC和PLIB (ISO 13584)标准的建筑构件库,但真正基于IFC标准构件库并没有完全实现。最新版本的IFC标准对建筑构件的支持已经相当完善,掌握基于IFC标准的建筑模型的表达方法,应用支持IFC 标准的应用软件实现信息交换与共享,是解决软件应用程序之间互操作性问题的基础。
1.2IFC标准总体架构
IFC架构分4个层:领域层、共享层、核心层和资源层,如图1所示。最顶层的领域层定义特定专业领域所需的实体对象,如电气领域(Electrical Domain)的电缆、变压器、电气设备等。共享层提供了通用性的对象,包括建筑服务元素、组件元素、建筑元素、管理元素、设备元素等,是用于领域层多个领域共享的。核心层更具体化的定义了IFC模型的基本的结构、基础关系和公用的概念。最底层的资源层定义了 21类可重复利用的实体与类型。包括几何资源、属性资源、材料资源等。资源层的实体不能独立存在,只能通过被其他层引用的方式出现。
给定层次定义的实体能够引用本层或下面各层的实体资源。即领域层可以引用其他三层的实体对象,共享层只能引用核心层和资源层,而核心层则只能引用资源层。整体架构的模块化设计使得模型更易于维护和扩展,同时对AEC/FM各个专业领域的实体进行了明确的区分,使得模型能够在每一个特定领域的软件中实现[15]。
IFC架构将所有的对象与类按概念进行了分类:类型、实体、函数、规则、属性集和量集。具体的定义如下:
(1) 类型(Types)有定义类型(Defined Types)、枚举类型(Enumeration Types)和选择类型(Select Types),定义了对象的基本类型。
(2) 实体(Entities)是有属性与约束定义的信息类,一个IFC数据模型由大量IFC实体对象组成。
(3) 函数(Functions)用于计算实体的属性。规则(Rules)用于约束实体属性的范围以及验证模型的正确性。
(4) 属性集(Property Sets)是一组属性的集合,可被不同的对象所引用。在IFC标准架构下,属性表达了对象的说明信息,将相同类型的属性进行组合。属性集通过关系实体IfcRelDefinesByProperties将属性关联到具体的构件。
(5) 量集(Quantity Sets)是对定量信息的集合,可被不同的对象所引用。其中 IfcElementQuantity是量集的描述实体,表示构件定量属性的集合,通过关系实体 IfcRelDefinesByProperties将属性关联到具体的构件。
图1 IFC4的技术架构图
2.1IFC对建筑构件的表达方法
IFC标准是参考STEP标准进行开发并逐步完善的,采用EXPRESS语言定义。在IFC中性文件中,任何一个实体(如IfcBeam)都是通过属性来描述自身的信息,属性分为直接属性、反属性(InverseAttribute)和导出属性。从图2可以得出属性在实例语句中的对应关系。直接属性是指标量或直接信息,如 GlobalId、Name等;导出属性是指由其他实体来表述的属性,如 OwnerHistory、ObjectPlacement和Representation;反属性则是指通过关联实体将属性实体与构件进行链接,使得构件具备链接的属性实体的属性,如HasAssociations通过关联实体 IfcRelAssociates可以关联构件的材料信息。IFC实体的的属性是通过继承关系获得的,如构件IfcBeam在IFC4版本中总共有33个属性,而自身只有PredefinedType这一个属性,其余的32个属性都是继承了从IfcRoot开始到IfcBuildingElement包含的属性。IfcBeam是IfcBuildingElement的 SUBTYPE(子类型),而再上一 级 的IfcElement是IfcBuildingElement的SUPERTYPE(超类型),以此类推,最顶层是IfcRoot。而在IFC物理文件中语句IfcBeam则只显示了9个属性,包括直接属性和导出属性,其余的 24个属性为反属性。
2.2实例分析IFC对标准梁的表达方法
图3描述了一个标准梁构件IfcBeamStandardCase,编号为#200。通过模型文件中梁的9个属性可知,编号为#201和#210的语句,分别代表了ObjectPlacement和Representation 2个属性。其中#201指向的 IfcLocalPlacement定义了标准梁的位置信息,其定义也是通过引用2个语句#100025和#202。#100025(IfcLocalPlacement)代表的是参考坐标系,即标准梁所在楼层(IfcBuildingStorey)的坐标系。而#202(IfcAxis2Placement3D)则定义了坐标的转换,即通过对参考坐标系的坐标进行转换,生成新的坐标系。#203(IfcCartesianPiont)定义了新坐标系的原点,#204(IfcDirection)和#205(IfcDirection)分别定义了新坐标系的Z轴方向和X轴方向,这2个方向是基于参考坐标系的方向转换得来的(图4)。
图2 IFC实体定义与实例语句之间的对应关系
图3 标准梁IFC文件实例
图4 相对坐标系的转换
另外,#210指向的是IfcProductDefinitionShape,定义了标准梁的截面形状。IfcProductDefinitionShape实体是构件所有描述形式的容器,可以定义多种几何表达方式。其中#211和#221(IfcShapeRepresentation)是两种不同的几何表达方式。#211引用的实体#212 (IfcExtrudedAreaSolid)是以拉伸二维截面到三维的拉伸实体。而这个拉伸实体需要定义一个截面形状,引用的是#213,实体为IfcIShapeProfileDef定义了一个 I型截面,而#215(IfcAxis2Placement3D)定义了拉伸实体的一个定位点,#97(IfcDirection)则定义了实体的拉伸方向(Z轴正方向),第4个属性为实体的在拉伸方向上的长度为6 000 mm。而#221表示以盒式线框来描述模型的几何形状。
标准梁的材料属性则是通过关联实体将构件与材料相关联,语句#240代表了这个关联实体IfcRelAssociatesMaterial。而对材料的定义引用了IfcMaterialProfileSet实体(用#242语句描述),而语句 #245(IfcMaterialProfile)将材料属性定义到构件的截面,最后指向材料实体#246(IfcMaterial),使得标准梁以及截面拥有这一材料属性。
语句#150是IfcBeamType,是对具有相同属性如构件类型、材料属性、截面属性的标准梁构件的一种定义,一般只对标准梁有这样的定义。而通过关联实体#90010(IfcRelDefinesByType)与IfcBeamType关联的所有IfcBeamStandardCase都共有这些属性。
3.1基于IFC标准新建构件的方法
3.1.1建立坐标位置,确定构件基点
采用相对坐标关系进行定位是建筑构件常用的定位方式。确定建筑构件局部坐标系所参考的坐标系。构件的位置以空间(IfcBuidlingStorey、IfcBuilding、IfcSite)所在的坐标系为参考。如定位一根梁(IfcBeam),由 ObjectPlacement描述,定义了局部坐标系及参考坐标系。其中属性PlacementRelTo指的是参考坐标系,而这个参考坐标系即楼层IfcBuidlingStorey所在的坐标系。相应的IfcBuildingStorey坐标系以IfcBuilding所在坐标系为参考,IfcBuilding以IfcSite所在坐标系为参考,而IfcSite定义的是整体坐标系,没有参考坐标系。另外,门窗实则是依附于墙而存在的,需要以开洞实体所在坐标系为参考,而开洞实体又以所在的墙实体作为参考。而 RelativePlacement是相对坐标系内的坐标转换,即定义了局部坐标系。这样就存在多层参考的情况,在明确各构件层次关系的前提下,进行逐级查询确定构件的绝对坐标,如图5所示。
图5 建筑构件位置信息与几何形状描述流程
3.1.2构造构件几何表达信息
建筑构件的几何表现信息属性是导出属性,由属性 Representation来描述,指向的实体是IfcProductRepresentation(超类)。而IfcProductDefinitionShape实体是构件所有描述形式的容器,其中IfcshapeRepresentation定义了几何形状表现类型,如SweptAreaSolid、BoundingBox等。其中IfcExtrudeAreaSolid描述的是一个三维拉伸实体,即定义一个二维截面形状(IfcProfileDef),再通过一个特定的方向与长度拉伸为三维实体,如IfcIShapeProfileDef表示截面形状为工字型或H型。
3.1.3定义材料
建筑构件的材料属性属于反属性,通过属性HasAssociations指向关联实体IfcRelAsscociateMaterial。即通过关联实体将构件与材料关联,使构件具备关联到的材料属性。
构件的材料属性主要通过以下几个类型定义:IfcMaterial、IfcMaterialList、IfcMaterialLayerSetUsage、IfcMaterialConstituentSet和IfcMaterialProfileSetUsage。其中,IfcMaterial是材料定义的基本实体,定义了材料名称(Name)、描述(Description)和分类(Category) 3个属性。其他4种材料类型最终都引用一个或多个IfcMaterial实体。
3.1.4关联属性集
建筑构件的属性集、量集、与其他构件的关联信息、碰撞情况等都是属于反属性,需要具体的关联实体进行关联。这些属性与构件的具体类型相关,例如对于 IfcBeam,可应用的属性集包括颜色信息(Pset_Draughting),通用属性(Pset_beamcommon)则包含梁的分类编号、跨度、坡度、转角、是否外部构件、导热系数、是否承重、防火等级等基本信息,而Pset_ReinforcementBarPitchOfBeam更是包含了混凝土梁的配筋情况;可用的量集(Qto_BeamBaseQuantities)包含梁长、断面面积、表面积、体积、质量等,通过关系实体IfcRelDefinesByProperties进行关联,如图6所示。
3.1.5确定构件空间关系
在IFC中存在唯一的一个IfcProject实体,用来描述现实中的一个工程项目。分别以 IfcSite、IfcBuilding、IfcBuildingStorey和IfcSpace来描述工程项目上的空间信息。这些实体之间的包含关系以关联实体 IfcRelAggregates进行关联。而对于一个构件,如一根梁(IfcBeam),通过关联实体IfcRelContained InSpatialStructure将构件与空间实体关联,构件之间会存在依附关系,如门窗必须依附于墙等。在IFC中,门(IfcDoor)、窗(IfcWindow)实体与墙(IfcWallStandardcase)实体之间需要依托于一个开洞实体(IfcOpeningElement)来进行关联。而门、窗实体与开洞实体、开洞实体与墙实体之间又分 别 以 关 联 实 体IfcRelFillsElement和IfcRelVoidsElement进行关联。最终,窗实体与楼层之间也需要通过IfcRelContainedInSpatialStructure实体关联,使得窗实体也包含在楼层中,如图6所示。
图6 建筑构件关联属性(反属性)描述流程
3.2基于IFC标准修改构件的方法
修改构件即编辑构件的属性,可分别对直接属性、导出属性和反属性的修改。对于直接属性可直接进行编辑,如 GlobalId、Name等。对于导出属性如位置信息(ObjectPlacement)和几何表达(Representation),则修改描述这2个属性的实体,但在修改前需要明确属性实体是否被其他构件引用。对于反属性则通过关联实体查找到链接的属性实体,需修改相应的参数即可,修改前也需要明确属性实体是否被其他构件引用。
位置信息(ObjectPlacement)的修改包括基点偏移量和旋转方向的修改。基点偏移量通过IfcLocalPlacement的 RelativePlacement属性(以IfcAxis2Placement 实体表示),其中 Location属性(以IfcCartesianPoint实体表示)描述的是偏移值。检查该 IfcCartesianPoint实体是否被其他实体引用,若没有则修改对应的偏移值,若有则新建IfcCartesianPoint实体并添加对应偏移值;而旋转方向的修改则通过 IfcAxis2Placement 实体中的IFCDirection实体控制,值得注意的是,IfcDirection的重用性很高,可直接引用模型所需的IfcDirection实体即可。
几何表达(representation)的修改包含截面尺寸、长度、可见性表达形式等,IFC标准针对不同的几何形体特征提供了多种几何描述方式(如SweptSolid、Brep等)。以SweptSolid为例,其表达特点是确定截面形状尺寸后沿某一方向拉伸一定的距离,形成三维实体模型。截面形状由属性SweptArea(以 IfcProfileDef实体表示)表达,修改IfcProfileDef实体的参数即可,并考虑实体是否被重用,若有则需新建相应属性;而Position主要用于更精确的修改构件的相对位置,截面的拉伸方向以及拉伸长度则通过ExtrudeDirection和Depth属性修改。
构件反属性的修改相对更为复杂,需要通过查询构件的关联实体,通过关联实体找到相应的属性实体,如材料属性通过IfcRelAssociatesMaterial实体关联,并且需要分析属性实体是否存在多次引用的情况。
3.3基于IFC 标准删除构件的方法
IFC标准中删除构件不仅仅只是删除构件实体本身,还需删除与构件相关联的属性实体。另外,由于属性实体存在多次被引用的情况,在删除属性实体时需要考虑属性实体是否被其他构件引用。而随着构件实体的删除,直接属性也会一并被删除,所以属性实体的删除分为导出属性和反属性两类:
导出属性。由其他实体表述,对其进行删除时先检查这些实体是否被其他对象引用,检查顺序由大到小,若没有重复引用的情况则全部删除。
反属性包括:①与删除构件存在依附关系的附属构件,当主体构件删除时,其附属构件也应删除。如墙体上的门、窗等,依附关系是窗的实体依附于开洞实体、开洞实体依附于墙实体。因此,在删除墙时需要将开洞实体、窗实体和依附实体同时删除,这些关系实体包括:IfcRelVoidsElement、IfcRelFillsElement和IfcRelProjectsElement;②材料属性与属性集等,删除顺序是通过关联实体找到属性实体,在确认属性实体没有被其他构件引用后删除,并将关联实体删除;③空间结构实体的删除,该属性通过IfcRelContainedInSpatialStructure关联,当建筑构件被删除时,其与空间结构实体的附属关系也应删除,即将建筑构件从IfcRelContained InSpatialStructure中清除。
IFC标准为实现全生命周期不同专业间的数据共享与交换奠定了基础。本文对IFC标准及其建筑构件进行详细的分析与描述,总结出了基于IFC标准建筑构件的管理:新建、修改和删除构件的实现方法与流程。对IFC标准以及IFC文件结构形式有了清晰的了解之后,今后将进一步拓展出重要的应用,如:
(1) 对IFC文件大小的压缩。由IFC本文表达方法可知,构件的截面形式是由IfcProfileDef(超类)对应的截面形式来描述,如I形截面IfcIShapeProfileDef。而一个项目文件中必然存在许多相同截面参数的构件。这些构件对截面实体的引用是重复的,即相同截面实体可能重复出现。而这些相同截面参数的构件都可以引用同一条截面实体语句,这样通过对重复截面实体语句的删除,可以有效减小IFC文件的大小。而其他参数如材料、属性集、量集等都是可以进行相应处理的。
(2) 基于IFC标准构件库的搭建。通过理清IFC标准对建筑构件的的表达方式以及 IFC数据的描述,可以编写应用程序编程接口(application programming interface, API)并进行封装,实现对基于 IFC标准构件参数的调用、修改、以及存储,为最终完成基于 IFC标准的构件库研究提供技术支持。
(3) 本文对基于IFC标准的建筑构件表达进行初步研究,仍有很多问题需要今后进一步研究与解决,如基于IFC标准的建筑构件库的搭建方法,构件库应用方法和BIM数据复用技术等。
[1] Eastman C, Teicholz P, Sacks R, et al. BIM handbook [M]. 2nd ed. New Jersey: John Wiley&Sons, 2011: 99-124.
[2] Gallagher M P, O’Connor A C, Dettbarn J L, et al. Cost analysis of inadequate interoperability in the US capital facilities industry [M]. Maryland, USA: Department of Commerce Technology Administration, 2004: 73-76.
[3] Young N, Jones S, Bernstein H, et al. The business value of BIM: getting building information modeling to the bottom line [R]. New York: Technical Report, The M cGraw-Hill Companies, 2009.
[4] Froese T, Fischer M, Grobler F, et al. Industry foundation classes for project management-a trial implementation [J]. Electronic Journal of Information Technology in Construction, 1999, (4): 17-37.
[5] ISO/PAS 16739:2005. Industry foundation classes, release 2x, platform specification (IFC2x plateform) [EB/OL]. [2013-09-11]. http://www.iso.org/iso/catalogue_ detail.htm?csnumber=38056.
[6] BuildingSMART International. Industry foundation classes release 2x4 (IFC4) release candidate 3 [EB/OL]. [2013-09-11]. http://www.buildingsmart-tech.org/ifc/FIC2x4/ rc3/htm l/index.htm.
[7] BuildingSMART International. List of software claiming IFC support [EB/OL]. [2013-09-11]. http://www.buildingsmart -tech.org/implementation/implementations.
[8] 邱奎宁, 张汉义, 王静, 等. IFC技术标准系列文章[J].土木建筑工程信息技术, 2010, 2(6): 83-86.
[9] 余芳强, 张建平, 刘强. 基于IFC的BIM子模型视图半自动生成[J]. 清华大学学报: 自然科学版, 2014, 54(8): 987-992.
[10] Gang W, Zhou Z P, Zhao X D, et al. Design of building component library based on IFC and PLIB standard [C]// 2010 2nd International Conference on Computer Engineering and Technology. New York: IEEE Press, 2010: 529-534.
[11] 邓雪原, 张之勇, 刘西拉. 基于IFC标准的建筑结构模型的自动生成[J]. 土木工程学报, 2007, 40(2): 6-12.
[12] 周成, 邓雪原. 建筑协同设计的模型视图管理应用研究[J]. 图学学报, 2013, 34(2): 94-100.
[13] 张洋, 张建平, 鹿明. 基于 BIM 的建筑工程信息集成与管理研究[D]. 北京: 清华大学, 2009.
[14] 李犁, 邓雪原. 基于 BIM 技术建筑协同平台的初步研究[D]. 上海: 上海交通大学, 2012.
[15] Won J S, Lee G. Algorithm for efficiently extracting IFC building elements from an IFC building model [J]. Computing in Civil Engineering, 2011, (416): 713-719.
Research on Representation and Management of IFC-Based Building Com ponents
Shi Pingwang,Lin Liangfan,Deng Xueyuan
(Department of Civil Engineering, Shanghai Jiao Tong University, Shanghai 200240, China)
Industry foundation classes (IFC) is the standard for BIM data storage, which defines all kinds classes and objects for the whole life cycle of construction projects. In this paper, through the example of a building element, IFC Beam, the representation of IFC-based building components described in detail. In addition, the management of IFC-based building component, including element creation, modification and deletion, is studied in detail. The research achievement can be utilized for the construction of IFC-based component library.
industry foundation classes standard; building components; component library
TU 201.4; TU 17
10.11996/JG.j.2095-302X.2016020249
A
2095-302X(2016)02-0249-08
2015-06-08;定稿日期:2015-09-18
国家BIM标准研究课题-勘察与设计阶段P-BIM应用技术研究(P-BIM 01B00)
施平望(1989–),男,江苏南通人,硕士研究生。主要研究方向为建筑CAD协同设计与集成、基于BIM技术的建筑协同平台。
E-mail:spw418spw@sjtu.edu.cn
邓雪原(1973–),男,湖北荆门人,副教授,博士。主要研究方向为建筑CAD协同设计与集成、基于BIM技术的建筑协同平台。
E-mail:dengxy@sjtu.edu.cn