Introduction
Industry Foundation Classes(IFC)是用于共享建筑资产行业数据的开放国际标准。该标准包括:
- schema(以各种形式提供,见范围)
 - 文档(以HTML格式提供,使用Markdown编写)
 - 属性集和数量集定义(为schema中实现的可扩展机制提供的标准化定义 - 以XML格式提供并在HTML文档中可用)
 - 数据文件的交换或序列化机制,见范围
 
IFC的主流交换格式是基于使用EXPRESS语言(ISO 10303-11:2004)发布的schema的Step Physical File Format(ISO 10303-21:2002)。其是组成交换的实体实例的明文编码,其中属性值以未命名值的有序序列形式提供。
约定
IFC规范包括源自建筑和设施管理行业部门的学科、行业和专业使用的术语、概念和数据规范项。术语和概念使用简明的英语词汇,数据规范中的数据项遵循命名约定。
- 类型、实体、规则和函数的数据项名称以前缀"Ifc"开头,并以CamelCase命名约定(无下划线,单词中的第一个字母大写)继续使用英语单词;
 - 实体中的属性名称遵循CamelCase命名约定,无前缀;
 - 本标准中的属性集定义以前缀"Pset_"开头,并以CamelCase命名约定继续使用英语单词;
 - 本标准中的数量集定义以前缀"Qto_"开头,并以CamelCase命名约定继续使用英语单词。
 
buildingSMART International在translations.buildingsmart.org上发布这些术语和概念的其他人类语言翻译。
模型视图定义
官方模型视图定义(MVD)作为相关规范存在。IFC 4.3的官方MVD政策目前为IFC设定了3个实施级别:
- Reference View(参考视图)
 - Alignment Based View(基于线形的视图)
 - Design Transfer View(设计传递视图)
 
这三个MVD可以看作是IFC 4.3实施的三个级别。它们是为实施添加更高级功能的渐进级别。供应商可以针对这些MVD获得IFC导入认证。导出认证可以针对MVD进行,但也可以针对更细粒度的功能部分进行。这些可以在validate.buildingsmart.org上找到。 IFC文档存放在standards.buildingsmart.org。
| MVD缩写 | RV | AbV | 
|---|---|---|
| 名称 | Reference View(参考视图) | Alignment-based View(基于线形的视图) | 
| 目的 | 适用于基于参考模型的数据交换,其中交换主要是单向的 | 适用于基于线形、相对于线形的线性放置以及与土木、基础设施和地理空间工程相关的其他概念的数据交换 | 
| 用途 | 作为参考而非设计意图的完整交换 | 可以用作参考,但其附加价值在于交换一些参数化构造(例如,线形、高级实体几何) | 
| 范围 | IFC4 Reference View的严格超集。范围通常较小且更易于实施。 | IFC4.3 Reference View的严格超集,因此范围更大。 | 
架构
IFC的数据schema架构定义了四个概念层,每个单独的schema都被分配到一个概念层。下图显示了IFC分层架构的schema架构。

- 资源层(Resource layer) — 最底层包括所有包含资源定义的单个schema,这些定义不包括全局唯一标识符,不应独立于更高层声明的定义使用;
 - 核心层(Core layer) — 下一层包括核心schema和核心扩展schema,包含最通用的实体定义,在核心层或更高层定义的所有实体都带有全局唯一ID,并可选地带有所有者和历史信息;
 - 互操作层(Interoperability layer) — 下一层包括包含实体定义的schema,这些实体定义特定于跨多个学科使用的通用产品、流程或资源专门化,这些定义通常用于建设信息的跨领域交换和共享;
 - 领域层(Domain layer) — 最高层包括包含实体定义的schema,这些实体定义是特定学科的产品、流程或资源的专门化,这些定义通常用于领域内的信息交换和共享。 在这张图中,"隧道"领域是透明的,因为它还不是当前IFC 4.3的一部分,但旨在包含在未来的更新中。
 
兼容性
建筑资产具有很长的生命周期。IFC版本之间的兼容性是标准开发中的一个关键问题。
向后兼容性是指针对标准先前版本编写的数据文件能够被支持后续版本的应用程序读取的能力。
本国际标准的ISO 10303-11 EXPRESS schema分发版中的类通常反映在程序代码中,并直接影响使用ISO 10303-21交换格式的交换结构(属性数量、属性类型)。
相反,属性集和数量集通常是不会在相同程度上影响软件接口功能的补充数据。属性集和数量集也是明确提供的,以快速解决特定用例和不断发展的软件功能。属性集和数量集的更改不会影响ISO 10303-21交换格式的结构(属性数量、属性类型)。
因此,属性集和数量集的兼容性不会像EXPRESS schema兼容性那样遵循相同的标准。
除了极少数情况外,向后兼容性是IFC标准演进的硬性要求。然而,可能发生的变更类型的严重程度存在差异。例如,重命名实体名称或在属性序列开头插入属性会导致在解析针对标准先前版本编写的文件时出现几乎不可恢复的错误。而向现有枚举添加枚举项被认为是完全向后兼容的。
弃用
随着IFC标准的发展,某些构造变得不受欢迎,因为它们已被其他构造取代,因为在软件中的实施被证明不足,或者因为在定义中发现了无法以向后兼容方式纠正的缺陷。
在这种情况下,通常选择弃用该构造,给实施者充分的时间来调整他们的软件。
注1:符合标准的解释器仍应能够导入已弃用的定义。
注2:符合标准的解释器应考虑使用建议的替代定义而不是已弃用的定义来修改导出。
本文档与ISO 16739-1:2018的已知向后不兼容性列表
以下实体、类型和函数已在本版本中删除:
- IfcBeamStandardCase
 - IfcBuildingElement
 - IfcBuildingElementType
 - IfcColumnStandardCase
 - IfcCorrectObjectAssignment
 - IfcDoorStandardCase
 - IfcDoorStyle
 - IfcDoorStyleConstructionEnum
 - IfcDoorStyleOperationEnum
 - IfcMemberStandardCase
 - IfcNullStyle
 - IfcObjectTypeEnum
 - IfcOpeningStandardCase
 - IfcPlateStandardCase
 - IfcPresentationStyleAssignment
 - IfcPresentationStyleSelect
 - IfcProxy
 - IfcSlabElementedCase
 - IfcSlabStandardCase
 - IfcStyleAssignmentSelect
 - IfcWallElementedCase
 - IfcWindowStandardCase
 - IfcWindowStyle
 - IfcWindowStyleConstructionEnum
 - IfcWindowStyleOperationEnum
 
以下实体、属性和枚举器已在本版本中弃用:
- IfcBuildingSystem
 - IfcCivilElement
 - IfcCivilElementType
 - IfcElectricDistributionBoard
 - IfcElectricDistributionBoardType
 - IfcFaceBasedSurfaceModel
 - IfcPostalAddress
 - IfcRelConnectsPortToElement
 - IfcRelServicesBuildings
 - IfcTelecomAddress
 - IfcTrapeziumProfileDef
 - IfcBuilding.BuildingAddress
 - IfcBuilding.ElevationOfRefHeight
 - IfcBuilding.ElevationOfTerrain
 - IfcBuildingStorey.Elevation
 - IfcOrganization.Addresses
 - IfcPerson.Addresses
 - IfcSite.LandTitleNumber
 - IfcSite.SiteAddress
 - IfcSurfaceStyleRendering.DiffuseTransmissionColour
 - IfcSurfaceStyleRendering.ReflectionColour
 - IfcSurfaceStyleRendering.TransmissionColour
 - IfcSurfaceTexture.Parameter
 - IfcTextureCoordinateGenerator.Parameter
 - IfcCableCarrierFittingTypeEnum.CROSS
 - IfcCableCarrierFittingTypeEnum.REDUCER
 - IfcCableCarrierFittingTypeEnum.TEE
 - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR
 - IfcGeographicElementTypeEnum.SOIL_BORING_POINT
 
本版本中引入了以下向后不兼容性:
| 严重程度 | 元素 | 不兼容性 | |
|---|---|---|---|
| 1 | 重大 | IfcGridPlacement | PlacementRelTo属性移至IfcObjectPlacement的结果。 | 
| 2 | 次要 | IfcCountMeasure | 定义从NUMBER更改为INTEGER。 |