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。
- 属性和属性集模板 - 定义属性集和单个属性的语法和数据类型。
- 属性集实例 - 定义可附加到对象实例的可共享和可扩展的属性集。属性集被视为部分类型信息,因为它在实例对象之间建立了共享属性信息的子集。
沿革 IFC1.5 中的新架构
5.1.2 类型
- IfcComplexPropertyTemplateTypeEnum(复杂属性模板类型枚举)
- IfcDefinitionSelect(定义选择类型)
- IfcProcessSelect(过程选择类型)
- IfcProductSelect(产品选择类型)
- IfcPropertySetDefinitionSelect(属性集定义选择类型)
- IfcPropertySetDefinitionSet(属性集定义集合)
- IfcPropertySetTemplateTypeEnum(属性集模板类型枚举)
- IfcResourceSelect(资源选择类型)
- IfcSimplePropertyTemplateTypeEnum(简单属性模板类型枚举)
- IfcStrippedOptional(精简可选)
5.1.3 实体
- IfcActor(参与者)
- IfcComplexPropertyTemplate(复杂属性模板)
- IfcContext(上下文)
- IfcControl(控制)
- IfcGroup(群组)
- IfcObject(对象)
- IfcObjectDefinition(对象定义)
- IfcPreDefinedPropertySet(预定义属性集)
- IfcProcess(过程)
- IfcProduct(产品)
- IfcProject(项目)
- IfcProjectLibrary(项目库)
- IfcPropertyDefinition(属性定义)
- IfcPropertySet(属性集)
- IfcPropertySetDefinition(属性集定义)
- IfcPropertySetTemplate(Ifc属性集模板)
- IfcPropertyTemplate(属性模板)
- IfcPropertyTemplateDefinition(属性模板定义)
- IfcQuantitySet(数量集)
- IfcRelAggregates(聚合关系)
- IfcRelAssigns(关联关系-分配)
- IfcRelAssignsToActor(分配给参与者)
- IfcRelAssignsToControl(指定给控制)
- IfcRelAssignsToGroup(关联到组)
- IfcRelAssignsToGroupByFactor(分配到带因子的组关系)
- IfcRelAssignsToProcess(关联关系-分配给过程)
- IfcRelAssignsToProduct(关系分配给产品)
- IfcRelAssignsToResource(关系分配给资源)
- IfcRelAssociates(关系关联)
- IfcRelAssociatesClassification(关系分类关联)
- IfcRelAssociatesDocument(关联文档)
- IfcRelAssociatesLibrary(关系库关联)
- IfcRelConnects(关系连接)
- IfcRelDeclares(关联关系-声明)
- IfcRelDecomposes(关联关系-分解)
- IfcRelDefines(关联关系-定义)
- IfcRelDefinesByObject(关联关系-按对象定义)
- IfcRelDefinesByProperties(关联关系-按属性定义)
- IfcRelDefinesByTemplate(关联关系-按模板定义)
- IfcRelDefinesByType(关联关系-按类型定义)
- IfcRelNests(关联关系-嵌套)
- IfcRelationship(关系)
- IfcResource(资源)
- IfcRoot(根)
- IfcSimplePropertyTemplate(简单属性模板)
- IfcTypeObject(对象类型)
- IfcTypeProcess(过程类型)
- IfcTypeProduct(产品类型)
- IfcTypeResource(资源类型)
5.1.4 属性集
- Pset_ActorCommon(参与者通用属性集)
- Pset_ProjectCommon(项目通用属性集)
5.1.5 工程量集
- Qto_BodyGeometryValidation(主体几何验证工程量集)
5.1.6 函数
- IfcUniqueDefinitionNames(唯一定义名称)
- IfcUniquePropertyName(唯一属性名称)
- IfcUniquePropertySetNames(唯一属性集名称)
- IfcUniquePropertyTemplateNames(唯一属性模板名称)
5.1.7 规则
5.1.8 属性枚举
- PEnum_ProjectType(项目类型属性枚举)