什么是IFC? EXPRESS语言与IFC体系
一、IFC
1、IFC简介
IFC是一个数据交换标准, 用于不同系统交换和共享数据。当需要多个软件协同完成任务时, 不同系统之间就会出现数据交换和共享的需求。这时, 工程人员都希望能将工作成果(这里就是工程数据), 从一个软件完整地导入到另外一个软件。
如果能有一个标准、公开的数据表达和存储方法, 每个软件都能导入、导出这种格式的工数据, 问题将大大简化, 而IFC就是这种标准、公开的数据表达和存储方法。
2、IFC标准的架构层次
IFC标准整体的信息描述分为四个层次, 从下往上分别为资源层、核心层、共享层、领域层, 每个层次又包含若干模块, 相关工程信息集中在一个模块里描述, 例如几何描述模块。(点击图片可查看清晰大图,下同。)
资源层里多是基础信息定义, 例如材料、几何、拓扑等;
核心层定义信息模型的整体框架, 例如工程对象之间的关系、工程对象的位和几何形状等;该层主要描述建筑工程信息的整体框架,其将资源
层的信息用一个整体框架组织起来,使它们相互联系和连接,组成一个整体,真实反映现实世界的结构。
共享层定义跨专业交换的信息, 例如墙、梁、住、门、窗等;
领域层定义各自领域的信息, 例如暖通领域的锅炉、风扇、节气阀等。
在IFC标准的定义中, 尽量避免下一层引用上一层的定义, 例如资源层的信息描述不会引用领域的信息描述, 这样避免由于上层的改动影响整体结构。
二、EXPRESS语言
1、EXPRESS语言简介
EXPRESS语言是由STEP(Standard for the Exchange of Product Model Data)开发的概念性语言,STEP是计算机可读的用于交换和描述产品制造信息的标准,正式代号为ISO 10303 EXPRESS是用于面向对象的信息描述语言,处于STEP中基础与核心的地位。它将IFC模型构描述为:规范的类,与类相关联的属性,类的约束,以及类与其他约束之间的关系。然而,EXPRESS语言仅适合软件的读写,在人工读取上存在一定的困难。因此,EXPRESS-G视图以图表式的表达被发展起来,并得到了普遍应用。
2、EXPRESS语言根基类及其三个子类
在IFC标准中定义了一个根类,它提供了一些诸如GlobalId,Name等基本属性定义,并由其派生出3个基本的抽象类。
IfcObject表示一切可以处理的对象或是项目,比如墙体、空地、虚拟边界、工作任务、建筑过程或是参与建筑设计的人等,名字前面的ABS表示该类是抽象类,它又派生出以下几个子类,如图3所示。其中,IfcProduct表示工程中的物理对象; IfcProcess表示在工程中发生并带有意图的行为,比如获取,建造等;IfcControl表示控制或是约束其它对象; IfcResource表示对象所需的资源;IfcActor表示参与工程的角色; IfcProject表示活跃的工程。
IfcRelationship用来描述实体对象间的相互关系,它的子类如图4所示。其中, IfcRelAssigns描述当一个对象使用其它对象提供的服务时的关系; IfcRelAssociates描述对象与外部资源信息(如库,文档等)的联系; IfcRelDecomposes描述元素的组成或是分解关系; IfcRelDefines通过类型定义或是属性定义来描述对象实例; IfcRelConnects定义了2个或是多个对象间的某种方式的连接关系,它可以是物理上的,也可以是逻辑上的。
IfcPropertyDefinition用来描述对象的特征,反映了对象在具体工程中的特殊信息。其中, IfcTypeObject定义了关于对象类型的明确信息; IfcPropertySetDefinition表示可以用来描述一个对象特征的一组属性.
3、EXPRESS语言的继承特点
IFC标准是参考STEP标准进行开发并逐步完善的,采用EXPRESS语言定义。在IFC中性文件中,任何一个实体(如Ifc Beam)都是通过属性来描述自身的信息,属性分为直接属性、反属性(InverseAttribute)、导出属性。直接属性是指标量或直接信息,如Global Id Name等;导出属性是指由其他实体来表述的属性,如Owner History、Object Placement、Representation;反属性则是指通过关联实体进行链接的属性,如HasAssociations通过关联实体Ifc Rel Associates可以关联构件的材料信息。IFC实体的的属性是通过继承关系获得的,如构件Ifc Beam在IFC4版本中总共有33个属性,而自身只有Predefined Type这一个属性,其余的32个属性都是继承了从Ifc Root开始到Ifc Building Element包含的属性。Ifc Beam是Ifc Building Element的SUBTYPE(子类型),而再上一级的Ifc Element是Ifc Building Element的SUPERTYPE(超类型),以此类推,最顶层是Ifc Root。而在IFC物理文件中语句Ifc Beam则只显示了9个属性,包括直接属性和导出属性,其余的24个属性为反属性. 反转属性是INVERSE关键字之后定义的属性,用于明确定义实体实例之间“双向”的一对多或多对多关系。
4、EXPRESS语言材料属性的表达
所有在 IFC 标准中定义的物理对象都可以具有材料属性,所有 IFCElement 实体对象的材料都可以通过IFCMateri-al Select 进行描述。
IFCMaterial Select 实体是选择类实体,引用该实体时,其子实体只能有一个被选择。IFCMaterial 实体用以描述单一材料,IFCMaterial List 用以描述多种材料,IFCMaterial Layer Set Usage 实体用以描述多层材料的顺序,厚度以及每层材料的属性等内容。
5、EXPRESS语言关系组织的表达
模型表达中,需要清晰地描述构件和空间的隶属关系,构件之间的连接关系,构件与材料间的引用关系等
IFC-Relationship实体是 IFC 标准之中用以描述这些各类关系的唯一实体。根据描述关系的不同,又被派生为多个不同子类。展示了其3 个核心的子类,IFCRelContained In Spatial Structure 表示构件和建筑空间的隶属关系,IFCRel Connects Elements 描述了构件间连接关系,IFCRel Associates Material 实体将构件与其相对应的材料属性联系起来.
6、EXPRESS语言的几何表达
建筑构件的几何表达是 IFC 标准描述 BIM 模型的重点,通过 IFC 标准中的几何实体可以完整描述 BIM 模型中构件的大小、形状以及空间位置。IFCProduct 实体的属性值 Ob-ject Placement、Representation 定义了实体的几何表达。构件空间位置定义通过 ObjectPlacement 属性进行,构件几何形状定义通过 Representation 属性进行。所有派生子类均继承了IFCProduct 的 Object Placement、Representation属性,可以利用这两个属性进行几何表达。ObjectPlacement属性引用了资源层中的几何资源: IFCLocal Placement 实体,通过该实体描述构件的相对空间位置; Representation 属性引用资源层中的几何模型资源: IFCShapeRepresentation 实体,通过该实体可以描述构件的几何模型。以长度为1 500 mm,300 × 600 mm 混凝土矩形梁的 IFC为例:
梁的具体信息需要通过属性引用的实体进行体现。#85 代表该语句的实例号,在IFC 文件之中,每一条语句被分配一个实例号,以便被其他实例引用。为了比较简单地分析语句,以$ 符号代替语句中次要信息,但是 $ 所占部分同样是该语句中需要被赋值的属性。
#64,#73 表示了该实体引用了其他实例进行表达.
上述 5 条语句表达了该梁的几何信息。#64 是 IFCBeam的 ObjectPlacement 属性IFCLOCALPLACEMENT( #59) 表示了该梁的几何坐标,这里几何坐标引用了#59 父坐标体系,是一种相对坐标体系的表达方法。#73 是 Representation 的属性值,它表示该梁采用了 Swept Solid 实体拉伸法,其拉伸的参数在 实 例 #72 中。IFCEXTRUDEDAREASOLID( #68,'$ ',#15,1500.) 表示底面沿直线拉伸的方法,#68 表示 300*600 的矩形,#15
指明沿其 Z 轴拉伸 1500mm。
上述 2 条语句表达了该梁的空间隶属关系。#80 定义了一个处于建筑物第 2 层的楼层。通过#173852 = IFCRel Contained In Spatial Structure 实体将 # 85 这根梁和# 80楼层联系起来。
上述 2 条语句表达了该梁的材料属性。#68912 定义了一种属性为混凝土的材料。通guo关系实体#174083 = IFCRel Associates Material 对#85 梁的材料进行了说明.
7、SPF文件简介
IFC SPF(STEP Physical File)文件是 IFC 标准所使用的主要数据交换文件。
头文件(点击图片可查看大图,下同)
数据段
1)
IfcProject needs to be included exactly once, it serves as the root element in an IFCexchange file for the coordination view
§ It has a compressed GUID (as many IFC elements), a link to anIfcOwnerHistory (that may have dummy data) and references to the units used in thisfile and to the geometric representation contexts for the shape representationsused in this file.
§ IfcUnitAssignment is the list of globally defined units(apply to all measure values within this file), e.g. all length measures in thegeometry are given as "mm", all plane angles as "degree"
§ IfcGeometricRepresentationContext is the 3D contextwith a precision factor (here 0.00001), the placement is always 0.,0.,0.
2)
§ This example has a three level project structure, created by exactly onesite, one building, and one building storey. The levels of site and buildingstorey are optional levels.
§ IfcSite is given with global positioningcoordinates, located at 24° 28' 0'' north, and 54° 25' 0'' west
§ local coordinate system of the site is positioned at the origin 0.,0.,0.with no rotation (no project offsets)
§ IfcBuilding and IfcBuildingStorey, bothpositioned relative to the IfcSite, and with zero offset and rotation.
3)
§ IfcRelAggregates creates the hierarchical project structuresite --> building --> building storey
§ IfcRelContainedInSpatialStructure creates thehierarchical assignment of building elements to the relevant project structureelement, here: the wall and the window are contained in the building storey.
4)
Creation of the wall object, since it is definedparametrically, it can be exchanged as standard case wall.
§ IfcWallStandardCase is positioned relative to the buildingstorey
§ is a single layer wall, with a material layer of 300mm thickness andplaced in the middle of the wall axis (material layer set usage offset -150mm)
§ has a wall axis starting 0.,150. ending at 5000.,150. (within the objectcoordinate system of the wall, defined by #46IfcLocalPlacement)
§ has a wall footprint defined as a area #63 IfcArbitraryClosedProfileDef
§ has a solid body extruding the footprint by 2300mm at #62 IfcExtrudedAreaSolid
§ has an optional bounding box geometry
5)
Adding the IfcMaterialLayerSetUsage information (required for standard case)
§ is a single layer wall, with a material layer of 300mm thickness andplaced in the middle of the wall axis (material layer set usage offset -150mm)
6)
三、IFC4
bulidingSMART组织在2013年3月12日正式发布了IFC标准;ISO16739-21在同年三月发布。
下图为IFC的发展历史:
1、IFC4概览
1)、 修正了IFC2X3
以来的已知错误;
2)、 改善了.ifc文档的可读性,并使文档的读写变得更简单;
3)、 将IFC中特性的定义(propertydefinition)与buildingSMART的数据词典链接;
4)、 支持多种新的工作流,包括4D、5D的模型交换,BIM与GIS的交互,增强了热学模拟和可持续性分析功能;
5)、 在IFC主要的建筑元素(architectural)、建筑服务(buildingservice)元素和结构(structural)元素方面增强了IFC规范,添加了新的几何学和参数化的特征;
6)、 将EXPRESSschema和ifcXML4 schema与IFC 规范(specification)充分整合。
2、IFC4的主要改进(部分)
1)、 增强了IFC schema的前后一致性,使其更有规律可循;完善了建筑/建筑服务元素的目录,比如加入了诸如solar device、shading device等之前没有的元素类型;将普通元素的定义与参数定义分开。
2)、 结构用钢和木材方面,增加了材料轮廓相关性的定义;支持各向异性的材料特性;增强 了结构分析模型和细节的表达。
3)、 增强了资源层几何模块的功能,能更好地描述不规则曲面;支持变截面拉伸;支持描述非平面表面和边界;支持扫列方式:arbitrary sweep。
4)、通过改善空间关系的表达以增强能量分析和其他性能分析;在元素(element)和元素类(element types)上添加了环境作用效果指示数与数值(environmental impact indicator and values);支持与GIS协同,使建筑地理位置可以展现在GIS系统中,反之亦然。
5)、将IFC的内容关联到IFD中,使得通过GUID可以在IFD中查询具体信息。
6)、在性质定义(property setdefinition)和数量定义(quantity set definition)中支持多语种。
7)、增强光影元素的表现。支持多纹理,光线分布,符合X3D标准。
8)、使多变的几何描述更加高效。如支持镶嵌几何、顶点向量坐标显示、物体不同表面可以有不同颜色附着和纹理。
9)、实现了ifcXML文件的轻量化,删除了冗余语言。如在IFC2X3标准下的ifcXML文件中占据50行的实体,在ifcXML4中仅占据14行就足以表达。