IFC4X2是三维建模、建筑信息模型(BIM)和地理信息系统(GIS)行业中广泛使用的开放文件格式。IFC4X2(Industry Foundation Classes)是一种标准的数据交换格式,开发的目的是为了在建筑和工程领域中进行信息交流和集成。IFC4X2从逻辑上描述了建筑或工程项目的物理或功能特征,并允许在不同的设计和分析工具之间共享数据的交互性。IFC4X2是基于XML格式的,可读性强,并可在各种平台和设备上进行操纵。
IFC4X2文件可以分解为两种不同类型的单元:物件和关系。
物件
物件表示建筑或工程中存在的实际事物,如构件、材料、设备、空间、元件等。在IFC4X2文件中,每个实体都有一个独一无二的标识符(ID),同时该实体的数据也保存在IFC4X2文件中。这些实体的数据可以包括名称、尺寸、材料、颜色、位置、旋转角度等等。
关系
关系表示物件之间的关系,这些关系包括空间关系、功能关系、分类关系等。IFC4X2文件中的关系可以更准确地描述建筑模型中实体之间的联系,以及在不同领域中使用不同的建模工具时如何交换数据。常见的IFC4X2文件中的关系包括包含关系(如房间中的墙体和门)、属于关系(如对象是哪种构件的一部分)、联系关系等。
IFC4X2文件结构一般如下:
<?xml version="1.0" encoding="UTF-8"?>
<iso_10303_28
xmlns="http://www.iai-tech.org/ifcXML/IFC4x2/FINAL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.iai-tech.org/ifcXML/IFC4x2/FINAL http://www.iai-tech.org/ifcXML/IFC4x2/FINAL/IFC4x2_final.xsd">
<!-- 具体的IFC4X2数据 部分省略 -->
</iso_10303_28>
IFC4X2是由国际ISO/TC 59/SC 13委员会(建筑和土木工程)和ISA国际委员会(信息组织和交换技术)联合制定的国际标准。IFC4X2文件的规范链接包括:
IFC4X2文件通常使用在线建模工具或BIM软件生成,下面示例是一个包含房间、墙体、门和窗户的IFC4X2文件:
<?xml version="1.0" encoding="UTF-8"?>
<iso_10303_28
xmlns="http://www.iai-tech.org/ifcXML/IFC4x2/FINAL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.iai-tech.org/ifcXML/IFC4x2/FINAL http://www.iai-tech.org/ifcXML/IFC4x2/FINAL/IFC4x2_final.xsd">
<IfcWall id="3p5OvgB5r5VuHstIROwmOh" Name="Wall1" ObjectType="Wall">
<GlobalId>3p5OvgB5r5VuHstIROwmOh</GlobalId>
<OwnerHistory>
<IfcPersonAndOrganization>
<ThePerson>
<GivenName>John</GivenName>
<FamilyName>Doe</FamilyName>
</ThePerson>
<TheOrganization>
<Name>My Company</Name>
</TheOrganization>
<Roles>
<IfcRoleEnum>Architect</IfcRoleEnum>
</Roles>
</IfcPersonAndOrganization>
<State>Added</State>
<ChangeAction>None</ChangeAction>
<CreationDate>2019-01-01</CreationDate>
</OwnerHistory>
<Representation>
<IfcShapeRepresentation RepresentationType="Brep">
<Items>
<IfcClosedShell>
<CfsFaces>
<IfcFace>
<Bounds>
<IfcPolyLoop>
<Coordinates>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>2000</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>3000</IfcLengthMeasure>
<IfcLengthMeasure>2000</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>3000</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
</Coordinates>
</IfcPolyLoop>
</Bounds>
</IfcFace>
<CfsFaces>
</IfcClosedShell>
</Items>
<Representation>
<IfcShapeRepresentation RepresentationType="Brep">
<Items>
<IfcClosedShell>
<CfsFaces>
<IfcFace>
<Bounds>
<IfcPolyLoop>
<Coordinates>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>3000</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>1000</IfcLengthMeasure>
<IfcLengthMeasure>3000</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>1000</IfcLengthMeasure>
<IfcLengthMeasure>1000</IfcLengthMeasure>
<IfcLengthMeasure>3000</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>1000</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>3000</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
</Coordinates>
</IfcPolyLoop>
</Bounds>
</IfcFace>
<CfsFaces>
</IfcClosedShell>
</Items>
</IfcShapeRepresentation>
</Representation>
</IfcWall>
<IfcBuildingStorey id="4p6Of8W4c4BU9mqIMxwnUe" Name="First Floor">
<GlobalId>4p6Of8W4c4BU9mqIMxwnUe</GlobalId>
<OwnerHistory>
<!-- OwnerHistory省略 -->
</OwnerHistory>
<CompositionType>Element</CompositionType>
<ObjectPlacement>
<!-- ObjectPlacement省略 -->
</ObjectPlacement>
<Representation>
<IfcProductDefinitionShape>
<Representations>
<IfcShapeRepresentation RepresentationType="FootPrint">
<Items>
<IfcPolyline>
<Points>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>4000</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>6000</IfcLengthMeasure>
<IfcLengthMeasure>4000</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
<IfcCartesianPoint>
<Coordinates>
<IfcLengthMeasure>6000</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
<IfcLengthMeasure>0</IfcLengthMeasure>
</Coordinates>
</IfcCartesianPoint>
</Points>
</IfcPolyline>
</Items>
</IfcShapeRepresentation>
</Representations>
</IfcProductDefinitionShape>
</Representation>
</IfcBuildingStorey>
<IfcDoor id="5p7Ow9Z6d6ZsUuteJRxn14" Name="Door1" PredefinedType="SingleSwingLeft">
<!-- 物体省略 -->
</IfcDoor>
<IfcWindow id="6p8Ox7A7e7AtVvtiKSyo15" Name="Window1" PredefinedType="TopHung">
<!-- 物体省略 -->
</IfcWindow>
</iso_10303_28>
以上示例中,包含3个IFC物体:墙体、楼层和门窗。其中,墙体和楼层的位置数据是通过多个CartesianPoint对象定义的,表示其在全局坐标系中的位置和方向。门和窗户对象包括预定义的门和窗类型信息,同时也包含其在空间中的位置信息。 IF4X2格式使三维建模、BIM和GIS数据的交互更加准确、可读性更高、流程更加可控。