概述
什么是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)
IfcProjectneeds 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.
§ IfcUnitAssignmentis 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"
§ IfcGeometricRepresentationContextis 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.
§ IfcSiteis 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)
§ IfcBuildingand IfcBuildingStorey, bothpositioned relative to the IfcSite, and with zero offset and rotation.
3)
§ IfcRelAggregatescreates the hierarchical project structuresite --> building --> building storey
§ IfcRelContainedInSpatialStructurecreates 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.
§ IfcWallStandardCaseis 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 IfcMaterialLayerSetUsageinformation (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行就足以表达。
最后
以上就是震动花卷为你收集整理的java读取ifc文件_IFC文件解析的全部内容,希望文章能够帮你解决java读取ifc文件_IFC文件解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复