IfcKernel定义了规范中最抽象的部分或核心部分。它捕获一般的结构,这些结构基本上是由它们在对对象模型的共同理解中的不同语义建立的,比如对象、属性和关系。然后,它们被专门化为非AEC/FM特定的结构,如产品、流程、控制和资源,这些构成模式架构(核心扩展层)中下一个级别的主要入口点。
IfcKernel还指定了基本属性和关系,例如产品在空间中的相对位置、过程在时间上的顺序或通用的分组和嵌套机制。通过提供:
●代理定义;
●类型对象定义;
●属性集定义;
●属性集模板定义。
在模式架构的资源层之外定义的每个实体都直接或间接地从IfcRoot实体继承。IfcRoot提供了以下基本功能:
●标识-分配全局唯一标识(GUID)
●可选所有权和变更信息
●可选名称和描述属性
IFC模型中有三种基本实体类型,它们都是从IfcRoot派生的。它们构成实体层次结构中的第一级专门化。
●对象定义是IFC模型中任何经过语义处理的事物(或项)的泛化。
●关系是事物(或项目)之间所有关系的泛化,这些关系被视为不同实体之间的对象化关系
●特性定义是可指定给对象定义的所有特性的泛化。
对象定义是抽象超类型、IFCOBJJECT定义,代表所有物理有形项目,如墙、波束或覆盖、物理存在的项目,如空间,或概念项目,例如网格或虚拟边界。它还代表诸如工作任务之类的过程,代表诸如成本项目之类的控制,代表诸如人力资源之类的资源,或代表诸如参与设计过程的人员之类的参与者。
对象定义专门用于对象引用、IfcObject(表示空间、时间或其他表示上下文中的任何单个对象)、对象类型、IfcTypeObject(表示作为类型的公共定义)或对于所有对象引用都相同的项目,以及基本项目或库上下文IfcContext。
对象和对象类型从其所涉及的关系中获取其信息。这包括与属性信息的定义关系,或为对象指定基础对象类型的类型关系。
关系主要被定义为客体化的关系。对象化关系处理对象之间的关系。这允许将关系特定的属性直接保留在关系对象上,并将关系语义与对象属性分离。
引入对象化关系还允许为关系语义开发单独的子类型树。
属性定义IfcPropertyDefinition是对象所有特征的泛化。在多个对象实例之间共享,它反映了对象类型的特定信息,但如果只分配给单个对象实例,它也可能表示项目上下文中实际对象的出现信息。
属性定义使用关系的概念应用于对象。
IFC模型中有六种基本实体类型,它们都来自IfcObject。
●产品-是用于并入项目的物理对象(制造、提供或创建)。它们可能是物理存在的或有形的。产品可以由形状表示来定义,并在坐标空间中有一个位置。
●过程-是项目中发生的旨在获取、构造或维护对象的操作。过程按时间顺序排列。
●控件-是控制或约束其他对象的概念。控制可被视为应用于必须满足的对象的指南、规范、规定、约束或其他要求。
●资源-是描述主要在流程中使用对象的概念。
●参与者-是在项目的整个生命周期中参与项目的人类代理。
●组-是对象的任意集合。
IFC模型中有六种基本关系类型,它们都是从ifcreationship派生的。关系可以有一个非正式的目的描述符,它表示应用此关系的特定目的。
●赋值-是对象实例及其各种子类型之间“链接”关系的泛化。链接表示一个对象(客户机)应用其他对象(供应商)服务的特定关联,或者一个对象可以通过该关联导航到其他对象。
●关联-指外部信息源(尤其是分类、库或文档),并将其与对象或属性定义关联。
●分解-定义组成或分解元素的一般概念。分解关系表示一个整体/部分层次结构,能够从整体(组合)导航到部分,反之亦然。
●定义-使用类型定义或属性集定义(视为部分类型信息)定义对象实例的属性。这是一种特殊的发生关系
●连接性-处理对象的连接性。
●声明-处理对象定义、属性定义和声明上下文之间的链接。
属性定义类型有两个基本概念,它们都派生自IfcPropertyDefinition。
●属性和属性集模板-定义属性集和单个属性的语法和数据类型。
●属性集引用-定义可附加到对象引用的可共享和可扩展属性集。属性集被视为部分类型信息,因为它在出现对象之间建立公共共享属性信息的子集。
IfcKernel包含 类型、实体、属性集、函数、规则
Types
1 IfcPropertySetDefinitionSet (属性集定义集)
2 IfcComplexPropertyTemplateTypeEnum
3 IfcObjectTypeEnum
4 IfcPropertySetTemplateTypeEnum
5 IfcSimplePropertyTemplateTypeEnum
6 IfcDefinitionSelect
7 IfcProcessSelect
8 IfcProductSelect
9 IfcPropertySetDefinitionSelect
10 IfcResourceSelect
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 IfcProxy
20 IfcQuantitySet
21 IfcRelAggregates
22 IfcRelAssigns
23 IfcRelAssignsToActor
24 IfcRelAssignsToControl
25 IfcRelAssignsToGroup
26 IfcRelAssignsToGroupByFactor
27 IfcRelAssignsToProcess
28 IfcRelAssignsToProduct
29 IfcRelAssignsToResource
30 IfcRelAssociates
31 IfcRelAssociatesClassification
32 IfcRelAssociatesDocument
33 IfcRelAssociatesLibrary
34 IfcRelationship
35 IfcRelConnects
36 IfcRelDeclares
37 IfcRelDecomposes
38 IfcRelDefines
39 IfcRelDefinesByObject
40 IfcRelDefinesByProperties
41 IfcRelDefinesByTemplate
42 IfcRelDefinesByType
43 IfcRelNests
44 IfcResource
45 IfcRoot
46 IfcSimplePropertyTemplate
47 IfcTypeObject
48 IfcTypeProcess
49 IfcTypeProduct
50 IfcTypeResource
Functions
1 IfcCorrectObjectAssignment
2 IfcUniquePropertyName
3 IfcUniquePropertyTemplateNames
4 IfcUniquePropertySetNames
5 IfcUniqueDefinitionNames
Rules
1 IfcSingleProjectInstance
Property Sets
1 Pset_ActorCommon