IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

5.1 IfcKernel(核心)

5.1.1 架构定义

IfcKernel 模式定义了规范中最抽象的部分或核心部分。它捕获了一般构造,这些构造基本上基于它们在对象模型普遍理解中的不同语义含义,如对象、属性和关系。然后,这些被专门化为非 AEC/FM 特定构造,如产品、流程、控制和资源,它们构成了模式架构下一层——核心扩展层的主要入口点。

IfcKernel 还规定了基本属性和关系,如空间中产品的相对位置、时间中流程的顺序,或一般的分组和嵌套机制。它还通过提供以下内容为规范的可扩展性奠定了基础:

  • 代理定义;
  • 类型对象定义;
  • 属性集定义;
  • 属性集模板定义。

5.1.1.1 根定义

模式架构资源层之外定义的每个实体都直接或间接继承自 IfcRoot 实体。IfcRoot 提供了以下基本功能:

  • 标识 - 分配全局唯一标识符(GUID)
  • 可选的所有权和更改信息
  • 可选的名称和描述属性

IFC 模型中有三种基本实体类型,它们都派生自 IfcRoot。它们构成了实体层次结构中的第一级专业化。

  • 对象定义是抽象超类型 IfcObjectDefinition,代表 IFC 模型中所有具有语义意义的事物(或项)。
  • 关系是所有事物(或项)之间关系(被视为实体之间的对象化关系)的泛化。
  • 属性定义是可分配给对象定义的所有特性的泛化。

5.1.1.2 对象定义

对象定义是抽象超类型 IfcObjectDefinition,代表物理上可触及的项目(如墙、梁或覆盖层)、物理上存在的项目(如空间)或概念性项目(如网格或虚拟边界)。它还代表流程(如工作任务)、控制(如成本项)、资源(如劳动力资源)或参与设计过程的参与者。

对象定义被专门化为对象实例(IfcObject),表示空间、时间或其他表示上下文中的任何单个对象;对象类型(IfcTypeObject),表示作为类型的通用定义或对于所有对象实例相同的条目;以及基本项目或库上下文(IfcContext)。

对象和对象类型通过它们所参与的关系获取信息。这包括与属性信息的定义关系,或与分配基础对象类型给对象的类型化关系。

5.1.1.3 关系定义

关系主要被定义为对象化关系 IfcRelationship。对象化关系处理对象之间的关系。这允许将特定于关系的信息直接保留在关系对象上,并将关系语义与对象属性解耦。

引入对象化关系也允许开发独立的关系语义子类型树。

5.1.1.4 属性定义

属性定义 IfcPropertyDefinition 是所有对象特性的泛化。它被多个对象实例共享,反映了对象类型的特定信息,但如果它仅分配给单个对象实例,它也可以表示项目上下文中实际对象的状态信息。

属性定义通过关系的概念应用于对象。

5.1.1.5 对象实体子类型树

IFC 模型中有六种基本实体类型,它们都派生自 IfcObject

  • 产品 - 用于并入项目的物理对象(制造、供应或创建)。它们可能是物理上存在的或有形的。产品可以通过形状表示来定义,并在坐标空间中有位置。
  • 流程 - 在项目中发生的旨在获取、建造或维护对象的动作。流程按时间顺序排列。
  • 控制 - 控制或约束其他对象的概念。控制可以被视为应用于必须满足的对象(如网格、虚拟边界)的指南、规范、法规、约束或其他要求。
  • 资源 - 描述对象主要在流程中使用的概念。
  • 参与者 - 在其整个生命周期中参与项目的个人代理。
  • 分组 - 对象的任意集合。

5.1.1.6 关系实体子类型树

IFC 模型中有六种基本关系类型,它们都派生自 IfcRelationship。关系可以分配一个非正式的目的描述符,该描述符表示应用此关系的特定目的。

  • 分配 - 是对象实例之间“链接”关系的泛化及其各种子类型。链接表示一个对象(客户端)应用其他对象(供应商)的服务,或者一个对象可以导航到其他对象的特定关联。
  • 关联 - 指向外部信息源(最显著的是分类、库或文档),并将其与对象或属性定义相关联。
  • 分解 - 定义了元素被组合或分解的一般概念。分解关系表示整体/部分层次结构,能够从整体(组合)导航到部分,反之亦然。
  • 定义 - 使用类型定义或属性集定义(视为部分类型信息)来定义对象实例的属性。这是一种特定的——实例关系。
  • 连接性 - 处理对象之间的连接。
  • 声明 - 处理对象定义和属性定义以及声明上下文之间的链接。

5.1.1.7 属性定义实体子类型树

有两种基本的属性定义类型概念,它们都派生自 IfcPropertyDefinition

  • 属性和属性集模板 - 定义属性集和单个属性的语法和数据类型。
  • 属性集实例 - 定义可附加到对象实例的可共享和可扩展的属性集。属性集被视为部分类型信息,因为它在实例对象之间建立了共享属性信息的子集。

5.1.2 Types

  1. IfcComplexPropertyTemplateTypeEnum
  2. IfcDefinitionSelect
  3. IfcProcessSelect
  4. IfcProductSelect
  5. IfcPropertySetDefinitionSelect
  6. IfcPropertySetDefinitionSet
  7. IfcPropertySetTemplateTypeEnum
  8. IfcResourceSelect
  9. IfcSimplePropertyTemplateTypeEnum
  10. IfcStrippedOptional

5.1.3 Entities

  1. IfcActor
  2. IfcComplexPropertyTemplate
  3. IfcContext
  4. IfcControl
  5. IfcGroup
  6. IfcObject
  7. IfcObjectDefinition
  8. IfcPreDefinedPropertySet
  9. IfcProcess
  10. IfcProduct
  11. IfcProject
  12. IfcProjectLibrary
  13. IfcPropertyDefinition
  14. IfcPropertySet
  15. IfcPropertySetDefinition
  16. IfcPropertySetTemplate
  17. IfcPropertyTemplate
  18. IfcPropertyTemplateDefinition
  19. IfcQuantitySet
  20. IfcRelAggregates
  21. IfcRelAssigns
  22. IfcRelAssignsToActor
  23. IfcRelAssignsToControl
  24. IfcRelAssignsToGroup
  25. IfcRelAssignsToGroupByFactor
  26. IfcRelAssignsToProcess
  27. IfcRelAssignsToProduct
  28. IfcRelAssignsToResource
  29. IfcRelAssociates
  30. IfcRelAssociatesClassification
  31. IfcRelAssociatesDocument
  32. IfcRelAssociatesLibrary
  33. IfcRelConnects
  34. IfcRelDeclares
  35. IfcRelDecomposes
  36. IfcRelDefines
  37. IfcRelDefinesByObject
  38. IfcRelDefinesByProperties
  39. IfcRelDefinesByTemplate
  40. IfcRelDefinesByType
  41. IfcRelNests
  42. IfcRelationship
  43. IfcResource
  44. IfcRoot
  45. IfcSimplePropertyTemplate
  46. IfcTypeObject
  47. IfcTypeProcess
  48. IfcTypeProduct
  49. IfcTypeResource

5.1.4 Property Sets

  1. Pset_ActorCommon
  2. Pset_ProjectCommon

5.1.5 Quantity Sets

  1. Qto_BodyGeometryValidation

5.1.6 Functions

  1. IfcUniqueDefinitionNames
  2. IfcUniquePropertyName
  3. IfcUniquePropertySetNames
  4. IfcUniquePropertyTemplateNames

5.1.7 Rules

  1. IfcSingleProjectInstance

5.1.8 PropertyEnumerations

  1. PEnum_ProjectType