IFC(Industry Foundation Classes)是BIM领域中通用的数据格式,用于描述建筑、工程和设备领域中的各种实体及其之间的关系。IFC文件格式是一种基于文本的标准文件格式,是官方的开放式数据模型。
IFC文件格式采用文本格式存储,通常以“*.ifc”为文件后缀名。IFC文件采用一系列模型实体类和实体属性描述文件,其中模型实体类包括了建筑结构中可能的所有具体和抽象构件,而实体属性描述文件则记录了每个实体类的所有属性。
IFC文件结构可以分为两个大的部分:实体数据部分和关系数据部分。实体数据部分存储IFC模型实体,包括了所有的元素、物理或能逻辑可见的事物。关系数据部分存储IFC实体之间的关系,定义了IFC实体之间的逻辑关系,如组合、连接、组成、管理等方面的关系。
实体数据部分的语法格式一般如下所示:
#1 = IFCBEAM('0x0000001', #2, '1000', '3000', '5000', 'BEAM A', '', '', '', #3, #4, #5, #6, #7, #8, #9, #10);
其中,#1 是实体标识符,IFCBEAM是实体的类型,'0x0000001'是实体的GUID,#2是实体的直接构造器,'1000'、'3000'和'5000'是实体的几何约束,'BEAM A'是实体的名称,#3至#10是实体的属性值。
关系数据部分的语法格式一般如下所示:
#2 = IFCRELCONTAINEDINSPATIALSTRUCTURE('0x0000003', #1, #3, $);
其中,#2是关系标识符,IFCRELCONTAINEDINSPATIALSTRUCTURE是关系类型,'0x0000003'是关系的GUID,#1和#3是关系涉及到的实体标识符。
IFC文件格式的规范链接通常包括了包括IFC格式说明书、IFC2x3版本新增功能、所有IFC实例的定义以及常用编码形式的说明。
IFC格式说明书:关于IFC文件格式内容的详细说明,包括IFC实体的分组和相关属性,方便实体数据的解析。
IFC2x3版本新增功能:描述了IFC2x3格式新功能的细节,例如三维模型、构造线、灯具等。
所有IFC实例的定义:包括IFC中所有实体类型的描述,可用于建模和实体数据的解析。
常用编码形式的说明:介绍了常见的IFC模型解析器和模型浏览器的支持结构。
以下是一个简单的IFC文件例子。
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('IFC 2x3'), 'Revit');
FILE_NAME('');
FILE_SCHEMA(('IFC2X3'));
END_HEADER;
DATA;
#1= IFCPROJECT('0JoBFEgFv0nvnGLTtTJ9tM',#2,'Dalian','Description','UP','ARCHITECTURE','A120TCQWTTFJIVEH32GQ73',#3,$);
#2= IFCCARTESIANPOINT((0,0,0));
#3= IFCOWNERHISTORY(#4,#5,$,.ADDED.,$,$,.ACTUAL.,1399471060);
#4= IFCPERSON('user','123456','',$,$,$,$);
#5= IFCORGANIZATION('','',$,$);
END_DATA;
此IFC文件定义了一个IFCPROJECT实体,并包括IFCCARTESIANPOINT实体、IFCOWNERHISTORY实体、IFCPERSON实体和IFCORGANIZATION实体。其中,IFCPROJECT实体包括了建筑项目名称、描述以及所属的项目类型。IFCCARTESIANPOINT实体记录了IFCPROJECT实体的坐标位置,IFCOWNERHISTORY实体用于描述IFCPROJECT实体的历史记录,IFCPERSON实体描述了项目缩写,IFCORGANIZATION实体描述了建筑项目所属的机构。
IFC文件格式具有很好的互操作性和可伸缩性,广泛应用于建筑、工程和设备领域。IFC文件的语法结构和规范链接为工作人员提供了标准化的数据处理方法,使得IFC文件格式越来越得到了广泛的认可和推广。