IFC 4.3.2.20260714 (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 类型

  1. IfcComplexPropertyTemplateTypeEnum(复杂属性模板类型枚举)
  2. IfcDefinitionSelect(定义选择类型)
  3. IfcProcessSelect(过程选择类型)
  4. IfcProductSelect(产品选择类型)
  5. IfcPropertySetDefinitionSelect(属性集定义选择类型)
  6. IfcPropertySetDefinitionSet(属性集定义集合)
  7. IfcPropertySetTemplateTypeEnum(属性集模板类型枚举)
  8. IfcResourceSelect(资源选择类型)
  9. IfcSimplePropertyTemplateTypeEnum(简单属性模板类型枚举)
  10. IfcStrippedOptional(精简可选)

5.1.3 实体

  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(Ifc属性集模板)
  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 属性集

  1. Pset_ActorCommon(参与者通用属性集)
  2. Pset_ProjectCommon(项目通用属性集)

5.1.5 工程量集

  1. Qto_BodyGeometryValidation(主体几何验证工程量集)

5.1.6 函数

  1. IfcUniqueDefinitionNames(唯一定义名称)
  2. IfcUniquePropertyName(唯一属性名称)
  3. IfcUniquePropertySetNames(唯一属性集名称)
  4. IfcUniquePropertyTemplateNames(唯一属性模板名称)

5.1.7 规则

  1. IfcSingleProjectInstance

5.1.8 属性枚举

  1. PEnum_ProjectType(项目类型属性枚举)