IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

5.1.3.48 IfcTypeProduct (产品类型)

RV ⓘ
AbV ⓘ

5.1.3.48.1 语义定义(Semantic definition)

IfcTypeProduct 定义了一个产品的类型定义,而无需将其插入项目结构中(没有放置),也未包含在项目的几何表示上下文中。它用于定义一个产品规范,即适用于该产品类型所有实例的特定产品信息。

IfcTypeProduct 可能附加有一个属性集列表和一个可选的产品表示集合。这些属性的值和表示映射适用于该产品类型的所有实例。类型-实例关系通过对象化关系 IfcRelDefinesByType 实现。

实例层面的表示(由 IfcProduct 的子类型表示)可以覆盖类型层面的特定表示:

  • 对于几何表示,可以在实例层面应用笛卡尔变换算子。
  • 对于属性集,实例属性集(分配给产品实例)中的属性会覆盖分配给产品类型的同名属性。

IfcTypeProduct 可以在尚未分配给 IfcProduct 的子类型的情况下进行交换。

5.1.3.48.2 实体继承(Entity inheritance)

5.1.3.48.3 特性(Attributes)

# 特性(Attributes) 类型 描述
IfcRoot (4)
1 GlobalId IfcGloballyUniqueId

在整个软件世界中分配全局唯一标识符。

2 OwnerHistory OPTIONAL IfcOwnerHistory

分配有关该对象当前所有权的信息,包括所有者参与者、应用程序、本地标识以及捕获到的关于对象近期更改的信息。

3 Name OPTIONAL IfcLabel

供参与的软件系统或用户使用的可选名称。对于某些 IfcRoot 的子类型,可能需要插入 Name 特性。这将通过 where 规则强制执行。

4 Description OPTIONAL IfcText

可选的描述,用于提供信息性注释。

IfcObjectDefinition (7)
HasAssignments SET [0:?] OF IfcRelAssigns FOR RelatedObjects

引用分配(通过关联关系)其他 IfcObject 子类型到此对象实例的关系对象。例如,与产品、过程、控制、资源或组的关联。

Nests SET [0:1] OF IfcRelNests FOR RelatedObjects

引用作为嵌套的分解关系。它确定此对象定义是顺序整体/部分分解关系中的一部分。对象实例或类型只能是单个分解的一部分(仅允许分层结构)。

IsNestedBy SET [0:?] OF IfcRelNests FOR RelatingObject

引用作为嵌套的分解关系。它确定此对象定义是顺序整体/部分分解关系中的整体。对象或对象类型可以被多个其他对象(实例或类型)嵌套。

HasContext SET [0:1] OF IfcRelDeclares FOR RelatedDefinitions

引用提供上下文信息的上下文,例如项目单位或表示上下文。它只应断言在最上层的非空间对象上。

IsDecomposedBy SET [0:?] OF IfcRelAggregates FOR RelatingObject

引用作为聚合的分解关系。它确定此对象定义是无序整体/部分分解关系中的整体。对象定义可以被多个其他对象(实例或部分)聚合。

Decomposes SET [0:1] OF IfcRelAggregates FOR RelatedObjects

引用作为聚合的分解关系。它确定此对象定义是无序整体/部分分解关系中的一部分。对象定义只能是单个分解的一部分(仅允许分层结构)。

HasAssociations SET [0:?] OF IfcRelAssociates FOR RelatedObjects

引用将外部资源或资源定义与对象关联的关系对象。例如,与库、文档或分类的关联。

IfcTypeObject (3)
5 ApplicableOccurrence OPTIONAL IfcIdentifier

此特性可选地定义了实例对象的数据类型,类型对象可以关联到该实例对象。如果不存在,则不对类型对象适用于哪个实例对象给出任何限制。使用以下约定:

  • 使用 IFC 命名约定(驼峰式命名,带有“Ifc”前缀)的适用实例对象的 IFC 实体名称。
  • 可选地在“/”(正斜杠)之后,以大写形式跟上预定义类型。
  • 如果一个类型对象适用于多个实例对象,则这些实例对象名称应以逗号“,”分隔,形成一个逗号分隔的字符串。
6 HasPropertySets OPTIONAL SET [1:?] OF IfcPropertySetDefinition

与对象类型关联的、并且是引用此对象类型的全部实例对象共有的属性集集合。

IFC2x3变更 属性聚合类型已从LIST更改为SET。

Types SET [0:1] OF IfcRelDefinesByType FOR RelatingType

指向关系 IfcRelDefinesByType 的引用,从而指向由该类型定义的那些实例对象。

点击显示 14 个隐藏的继承特性 点击隐藏 14 个继承特性
IfcTypeProduct (3)
7 RepresentationMaps OPTIONAL LIST [1:?] OF UNIQUE IfcRepresentationMap

唯一的表示映射列表。每个表示映射描述了产品样式的形状块定义。通过提供多个表示映射,可以给出多视图块定义。

8 Tag OPTIONAL IfcLabel

产品特定类型上的标签(或标识)标识符,例如货号(如 EAN)。这是特定层级的标识符。

ReferencedBy SET [0:?] OF IfcRelAssignsToProduct FOR RelatingProduct

指向 IfcRelAssignsToProduct 关系的引用,通过该关系,其他产品、进程、控制、资源或参与者(作为 IfcObjectDefinition 的子类型)可以与此产品类型相关联。

表 5.1.3.48.C

5.1.3.48.4 形式化命题(Formal propositions)

名称 描述
ApplicableOccurrence

如果产品类型(或样式)被分配给一个对象,则它只能分配给一个属于 IfcProduct 子类型的对象。

NOT(EXISTS(SELF\IfcTypeObject.Types[1])) OR
(SIZEOF(QUERY(temp <* SELF\IfcTypeObject.Types[1].RelatedObjects |
  NOT('IFC4X3_DEV_62887e3f.IFCPRODUCT' IN TYPEOF(temp)))
) = 0)
表 5.1.3.48.D

5.1.3.48.5 属性集

  • Pset_Risk
    • RiskName
    • RiskType
    • NatureOfRisk
    • RiskAssessmentMethodology
    • UnmitigatedRiskLikelihood
    • UnmitigatedRiskConsequence
    • UnmitigatedRiskSignificance
    • MitigationPlanned
    • MitigatedRiskLikelihood
    • MitigatedRiskConsequence
    • MitigatedRiskSignificance
    • MitigationProposed
    • AssociatedProduct
    • AssociatedActivity
    • AssociatedLocation
  • Pset_Tolerance
    • ToleranceDescription
    • ToleranceBasis
    • OverallTolerance
    • HorizontalTolerance
    • OrthogonalTolerance
    • VerticalTolerance
    • PlanarFlatness
    • HorizontalFlatness
    • ElevationalFlatness
    • SideFlatness
    • OverallOrthogonality
    • HorizontalOrthogonality
    • OrthogonalOrthogonality
    • VerticalOrthogonality
    • OverallStraightness
    • HorizontalStraightness
    • OrthogonalStraightness
    • VerticalStraightness
  • Pset_Uncertainty
    • UncertaintyBasis
    • UncertaintyDescription
    • HorizontalUncertainty
    • LinearUncertainty
    • OrthogonalUncertainty
    • VerticalUncertainty

5.1.3.48.6 概念用法(Concept usage)

概念 用法 描述
IfcRoot (2)
Revision Control General

使用 IfcOwnerHistory 捕获所有权、历史记录和合并状态。

Software Identity General

IfcRoot 分配全局唯一 ID。此外,它还可以为概念提供名称和描述。

IfcObjectDefinition (11)
Classification Association General

任何对象实例或对象类型都可以具有对特定分类引用的引用,即对分类系统中特定方面的引用。

Aggregation General

聚合表示整体结构(称为“复合体”)与从属组件(称为“部分”)之间的内部无序部分组成关系。聚合的概念有多种用法。例如:

  • 聚合用于建筑构件,以指示墙体内的龙骨等部分;
  • 聚合用于空间元素,以指示空间结构,例如建筑物内的楼层;
  • 聚合用于系统,以指示子系统,例如分支电路。

聚合是一种双向关系,从复合体到其部分的这种关系称为分解(Decomposition),从部分到其复合体的这种关系称为组合(Composition)。

concept {
    IfcObjectDefinition:IsDecomposedBy -> IfcRelAggregates:RelatingObject
}
Approval Association General

概念 批准关联 描述了对象或对象类型如何关联批准,指示谁需要批准数据、是否已批准的状态以及批准的日期/时间。批准可能需要多个方扮演各种角色。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesApproval:RelatedObjects
    IfcRelAssociatesApproval:RelatingApproval -> IfcApproval
    IfcApproval:Name -> IfcLabel_0
    IfcApproval:TimeOfApproval -> IfcDateTime
    IfcApproval:Status -> IfcLabel_1
}
Constraint Association General

概念 约束关联 描述了对象或对象类型如何关联约束,指示需要满足的定性目标或定量指标。

基于指标的约束是可衡量的,使得指标有效的状态是计算机可解释的。指标约束基于简单的条件逻辑,例如大于特定值或包含在指定列表或表中。约束可以使用布尔逻辑(如 AND、OR、XOR 或 NOT)组合多个指标。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesConstraint:RelatedObjects
    IfcRelAssociatesConstraint:RelatingConstraint -> IfcObjective
    IfcObjective:BenchmarkValues -> IfcMetric
    IfcObjective:ObjectiveQualifier -> IfcObjectiveEnum
    IfcObjective:LogicalAggregator -> IfcLogicalOperatorEnum
    IfcMetric:DataValue -> IfcMetricValueSelect
    IfcMetric:DataValue -> IfcAppliedValue_0
    IfcMetric:DataValue -> IfcTable
    IfcMetric:Benchmark -> IfcBenchmarkEnum
    IfcMetric:ReferencePath -> IfcReference_1
    IfcMetric:Name -> IfcLabel_1
    IfcMetric:Description -> IfcText_1
    IfcAppliedValue_0:ArithmeticOperator -> IfcArithmeticOperatorEnum
    IfcAppliedValue_0:Components -> IfcAppliedValue_1
    IfcAppliedValue_0:AppliedValue -> IfcLengthMeasure
    IfcAppliedValue_0:AppliedValue -> IfcReal
    IfcTable:Rows -> IfcTableRow
    IfcTable:Columns -> IfcTableColumn
    IfcTableColumn:Identifier -> IfcIdentifier
    IfcTableColumn:Name -> IfcLabel_0
    IfcTableColumn:Description -> IfcText_0
    IfcTableColumn:ReferencePath -> IfcReference_0
    IfcMetric:DataValue[binding="DataValue"]
    IfcReference_1:AttributeIdentifier[binding="Attribute1"]
}
Document Association General

概念 文档关联 描述了对象或对象类型如何关联文档,指示外部文件。文档可以整体引用,例如用于捕获产品手册、数据表、多媒体内容或缩略图。文档中的内容可以从任何对象引用,并可用于同步其他文件中的信息,例如项目管理应用程序的项目计划。

文档的典型元数据,如发布日期、编辑者等,可以与关联一起捕获,但文档内容仍保留在外部文件中。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesDocument:RelatedObjects
    IfcRelAssociatesDocument:Name -> IfcLabel_0
    IfcRelAssociatesDocument:RelatingDocument -> IfcDocumentReference
    IfcDocumentReference:Location -> IfcURIReference
    IfcDocumentReference:Identification -> IfcIdentifier
    IfcDocumentReference:Name -> IfcLabel_1
    IfcDocumentReference:Description -> IfcText
    IfcRelAssociatesDocument:Name[binding="Name"]
}
Library Association General

概念 库关联 描述了对象和对象类型如何关联库实体,指示另一个数据源,例如来自模型服务器、产品库或外部数据库或系统,这些数据源用更多详细信息丰富数据。库可以整体从项目或项目库中引用,指示数据的源和版本。库中的内容可以从项目或项目库中的任何对象、类型对象、属性和某些资源模式实体中引用。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesLibrary:RelatedObjects
    IfcRelAssociatesLibrary:RelatingLibrary -> IfcLibraryReference
    IfcLibraryReference:Location -> IfcURIReference
    IfcLibraryReference:Identification -> IfcIdentifier
    IfcLibraryReference:Name -> IfcLabel
    IfcLibraryReference:Description -> IfcText
    IfcLibraryReference:Language -> IfcLanguageId
    IfcLibraryReference:ReferencedLibrary -> IfcLibraryInformation
    IfcRelAssociatesLibrary:RelatingLibrary[binding="RelatingLibrary"]
}
Material Association General

任何产品或产品类型都可以关联材料,以指示对象的物理组成。

材料可以具有用于表面样式的表示,指示 3D 渲染的颜色、纹理和光反射率。材料可以具有用于填充样式的表示,指示 2D 渲染的颜色、图案和阴影线。材料可以具有密度、弹性、热阻等属性,如本规范中所定义。材料也可以根据引用的行业标准进行分类。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesMaterial:RelatedObjects
}
Material Single General

材料直接与产品和产品类型关联,以表示整个对象的均匀材料。

材料也可以与 IfcTypeObject 关联,为该类型的实例定义材料。如果材料同时在 IfcTypeObjectIfcObject 上进行关联,则直接分配给 IfcObject 的材料具有优先权。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesMaterial:RelatedObjects
    IfcRelAssociatesMaterial:RelatingMaterial -> IfcMaterial
    IfcMaterial -> Material
}
Nesting General

嵌套表示主体结构(称为“主机”)与附加组件(称为“被托管元素”)之间的外部有序部分组成关系。嵌套的概念有多种用法。例如:

  • 嵌套用于产品构件,以指示外部可连接部件,例如安装在水槽上的水龙头或安装在接线盒内的开关。
  • 嵌套用于控制对象,以指示规范层次结构。
  • 嵌套用于过程对象,以指示可能并行或串行发生的从属过程。
  • 嵌套用于资源对象,以指示可能并行或串行发生的从属资源分配。

嵌套是一种双向关系,从主机结构到其附加组件的关系称为嵌套(Nesting),从组件到其包含结构的关系称为托管(Hosting)。

concept {
    IfcObjectDefinition:IsNestedBy -> IfcRelNests:RelatingObject
}
Revision Control General

使用 IfcOwnerHistory 捕获所有权、历史记录和合并状态。

Software Identity General

IfcRoot 分配全局唯一 ID。此外,它还可以为概念提供名称和描述。

IfcTypeObject (13)
Aggregation General

聚合表示整体结构(称为“复合体”)与从属组件(称为“部分”)之间的内部无序部分组成关系。聚合的概念有多种用法。例如:

  • 聚合用于建筑构件,以指示墙体内的龙骨等部分;
  • 聚合用于空间元素,以指示空间结构,例如建筑物内的楼层;
  • 聚合用于系统,以指示子系统,例如分支电路。

聚合是一种双向关系,从复合体到其部分的这种关系称为分解(Decomposition),从部分到其复合体的这种关系称为组合(Composition)。

concept {
    IfcObjectDefinition:IsDecomposedBy -> IfcRelAggregates:RelatingObject
}
Approval Association General

概念 批准关联 描述了对象或对象类型如何关联批准,指示谁需要批准数据、是否已批准的状态以及批准的日期/时间。批准可能需要多个方扮演各种角色。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesApproval:RelatedObjects
    IfcRelAssociatesApproval:RelatingApproval -> IfcApproval
    IfcApproval:Name -> IfcLabel_0
    IfcApproval:TimeOfApproval -> IfcDateTime
    IfcApproval:Status -> IfcLabel_1
}
Classification Association General

任何对象实例或对象类型都可以具有对特定分类引用的引用,即对分类系统中特定方面的引用。

Constraint Association General

概念 约束关联 描述了对象或对象类型如何关联约束,指示需要满足的定性目标或定量指标。

基于指标的约束是可衡量的,使得指标有效的状态是计算机可解释的。指标约束基于简单的条件逻辑,例如大于特定值或包含在指定列表或表中。约束可以使用布尔逻辑(如 AND、OR、XOR 或 NOT)组合多个指标。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesConstraint:RelatedObjects
    IfcRelAssociatesConstraint:RelatingConstraint -> IfcObjective
    IfcObjective:BenchmarkValues -> IfcMetric
    IfcObjective:ObjectiveQualifier -> IfcObjectiveEnum
    IfcObjective:LogicalAggregator -> IfcLogicalOperatorEnum
    IfcMetric:DataValue -> IfcMetricValueSelect
    IfcMetric:DataValue -> IfcAppliedValue_0
    IfcMetric:DataValue -> IfcTable
    IfcMetric:Benchmark -> IfcBenchmarkEnum
    IfcMetric:ReferencePath -> IfcReference_1
    IfcMetric:Name -> IfcLabel_1
    IfcMetric:Description -> IfcText_1
    IfcAppliedValue_0:ArithmeticOperator -> IfcArithmeticOperatorEnum
    IfcAppliedValue_0:Components -> IfcAppliedValue_1
    IfcAppliedValue_0:AppliedValue -> IfcLengthMeasure
    IfcAppliedValue_0:AppliedValue -> IfcReal
    IfcTable:Rows -> IfcTableRow
    IfcTable:Columns -> IfcTableColumn
    IfcTableColumn:Identifier -> IfcIdentifier
    IfcTableColumn:Name -> IfcLabel_0
    IfcTableColumn:Description -> IfcText_0
    IfcTableColumn:ReferencePath -> IfcReference_0
    IfcMetric:DataValue[binding="DataValue"]
    IfcReference_1:AttributeIdentifier[binding="Attribute1"]
}
Document Association General

概念 文档关联 描述了对象或对象类型如何关联文档,指示外部文件。文档可以整体引用,例如用于捕获产品手册、数据表、多媒体内容或缩略图。文档中的内容可以从任何对象引用,并可用于同步其他文件中的信息,例如项目管理应用程序的项目计划。

文档的典型元数据,如发布日期、编辑者等,可以与关联一起捕获,但文档内容仍保留在外部文件中。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesDocument:RelatedObjects
    IfcRelAssociatesDocument:Name -> IfcLabel_0
    IfcRelAssociatesDocument:RelatingDocument -> IfcDocumentReference
    IfcDocumentReference:Location -> IfcURIReference
    IfcDocumentReference:Identification -> IfcIdentifier
    IfcDocumentReference:Name -> IfcLabel_1
    IfcDocumentReference:Description -> IfcText
    IfcRelAssociatesDocument:Name[binding="Name"]
}
Library Association General

概念 库关联 描述了对象和对象类型如何关联库实体,指示另一个数据源,例如来自模型服务器、产品库或外部数据库或系统,这些数据源用更多详细信息丰富数据。库可以整体从项目或项目库中引用,指示数据的源和版本。库中的内容可以从项目或项目库中的任何对象、类型对象、属性和某些资源模式实体中引用。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesLibrary:RelatedObjects
    IfcRelAssociatesLibrary:RelatingLibrary -> IfcLibraryReference
    IfcLibraryReference:Location -> IfcURIReference
    IfcLibraryReference:Identification -> IfcIdentifier
    IfcLibraryReference:Name -> IfcLabel
    IfcLibraryReference:Description -> IfcText
    IfcLibraryReference:Language -> IfcLanguageId
    IfcLibraryReference:ReferencedLibrary -> IfcLibraryInformation
    IfcRelAssociatesLibrary:RelatingLibrary[binding="RelatingLibrary"]
}
Material Association General

任何产品或产品类型都可以关联材料,以指示对象的物理组成。

材料可以具有用于表面样式的表示,指示 3D 渲染的颜色、纹理和光反射率。材料可以具有用于填充样式的表示,指示 2D 渲染的颜色、图案和阴影线。材料可以具有密度、弹性、热阻等属性,如本规范中所定义。材料也可以根据引用的行业标准进行分类。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesMaterial:RelatedObjects
}
Material Single General

材料直接与产品和产品类型关联,以表示整个对象的均匀材料。

材料也可以与 IfcTypeObject 关联,为该类型的实例定义材料。如果材料同时在 IfcTypeObjectIfcObject 上进行关联,则直接分配给 IfcObject 的材料具有优先权。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesMaterial:RelatedObjects
    IfcRelAssociatesMaterial:RelatingMaterial -> IfcMaterial
    IfcMaterial -> Material
}
Nesting General

嵌套表示主体结构(称为“主机”)与附加组件(称为“被托管元素”)之间的外部有序部分组成关系。嵌套的概念有多种用法。例如:

  • 嵌套用于产品构件,以指示外部可连接部件,例如安装在水槽上的水龙头或安装在接线盒内的开关。
  • 嵌套用于控制对象,以指示规范层次结构。
  • 嵌套用于过程对象,以指示可能并行或串行发生的从属过程。
  • 嵌套用于资源对象,以指示可能并行或串行发生的从属资源分配。

嵌套是一种双向关系,从主机结构到其附加组件的关系称为嵌套(Nesting),从组件到其包含结构的关系称为托管(Hosting)。

concept {
    IfcObjectDefinition:IsNestedBy -> IfcRelNests:RelatingObject
}
Object Type Predefined Type General

===========================

许多对象实例和对象类型实体都有一个名为 PredefinedType 的特性,该特性由一个特定的枚举组成。这种预定义类型本质上提供了另一个继承级别,以在无需额外实体的情况下进一步区分对象。预定义类型不仅是信息性的;各种规则适用,例如适用的属性集、部件组成和分配端口。如果对象通过 IfcTypeObject 进行类型化,则仅当 IfcTypeObject 处的 PredefinedType 设置为 NOTDEFINED 时,才能使用 IfcObject 实例处的 PredefinedType

请注意,PredefinedType 特性本身是在继承层次结构的叶类中定义的,并为该给定叶类提供了一个特定的枚举特性。

concept {
    IfcTypeObject:Types -> IfcRelDefinesByType:RelatingType
    IfcRelDefinesByType:RelatedObjects -> IfcObject:IsTypedBy
    IfcObject:ObjectType -> IfcLabel

    IfcTypeObject:ElementType[binding="TypeUserDefinedType"]
    IfcTypeObject:PredefinedType[binding="TypePredefinedType"]
    IfcObject:ObjectType[binding="UserDefinedType"]
    IfcObject:PredefinedType[binding="PredefinedType"]
}
Property Sets for Types General

用于类型的属性集 概念模板描述了对象类型如何与一个或多个属性集相关联。一个属性集包含一个或多个属性。单个属性的数据类型是单值、枚举值、有界值、表值、引用值、列表值以及属性实例的组合。

分配给对象类型的属性值同样适用于该对象类型的所有实例,请参阅 对象类型定义 概念,除非它被具有相同名称的属性在具有相同名称的属性集中被单个对象实例覆盖。

concept {
    IfcTypeObject:HasPropertySets -> IfcPropertySet
    IfcPropertySet:HasProperties -> IfcPropertySingleValue
    IfcPropertySet:HasProperties -> IfcPropertyBoundedValue
    IfcPropertySet:HasProperties -> IfcPropertyEnumeratedValue
    IfcPropertySet:HasProperties -> IfcPropertyListValue
    IfcPropertySet:HasProperties -> IfcPropertyTableValue
    IfcPropertySingleValue -> Single_Value
    IfcPropertyBoundedValue -> Bounded_Value
    IfcPropertyEnumeratedValue -> Enumerated_Value
    IfcPropertyListValue -> List_Value
    IfcPropertyTableValue -> Table_Value
    IfcPropertySet:Name[binding="PsetName"]
}
Revision Control General

使用 IfcOwnerHistory 捕获所有权、历史记录和合并状态。

Software Identity General

IfcRoot 分配全局唯一 ID。此外,它还可以为概念提供名称和描述。

点击显示 26 个隐藏的继承概念 点击隐藏 26 个继承概念
IfcTypeProduct (20)
Aggregation General

聚合表示整体结构(称为“复合体”)与从属组件(称为“部分”)之间的内部无序部分组成关系。聚合的概念有多种用法。例如:

  • 聚合用于建筑构件,以指示墙体内的龙骨等部分;
  • 聚合用于空间元素,以指示空间结构,例如建筑物内的楼层;
  • 聚合用于系统,以指示子系统,例如分支电路。

聚合是一种双向关系,从复合体到其部分的这种关系称为分解(Decomposition),从部分到其复合体的这种关系称为组合(Composition)。

concept {
    IfcObjectDefinition:IsDecomposedBy -> IfcRelAggregates:RelatingObject
}
Approval Association General

概念 批准关联 描述了对象或对象类型如何关联批准,指示谁需要批准数据、是否已批准的状态以及批准的日期/时间。批准可能需要多个方扮演各种角色。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesApproval:RelatedObjects
    IfcRelAssociatesApproval:RelatingApproval -> IfcApproval
    IfcApproval:Name -> IfcLabel_0
    IfcApproval:TimeOfApproval -> IfcDateTime
    IfcApproval:Status -> IfcLabel_1
}
Classification Association General

任何对象实例或对象类型都可以具有对特定分类引用的引用,即对分类系统中特定方面的引用。

Constraint Association General

概念 约束关联 描述了对象或对象类型如何关联约束,指示需要满足的定性目标或定量指标。

基于指标的约束是可衡量的,使得指标有效的状态是计算机可解释的。指标约束基于简单的条件逻辑,例如大于特定值或包含在指定列表或表中。约束可以使用布尔逻辑(如 AND、OR、XOR 或 NOT)组合多个指标。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesConstraint:RelatedObjects
    IfcRelAssociatesConstraint:RelatingConstraint -> IfcObjective
    IfcObjective:BenchmarkValues -> IfcMetric
    IfcObjective:ObjectiveQualifier -> IfcObjectiveEnum
    IfcObjective:LogicalAggregator -> IfcLogicalOperatorEnum
    IfcMetric:DataValue -> IfcMetricValueSelect
    IfcMetric:DataValue -> IfcAppliedValue_0
    IfcMetric:DataValue -> IfcTable
    IfcMetric:Benchmark -> IfcBenchmarkEnum
    IfcMetric:ReferencePath -> IfcReference_1
    IfcMetric:Name -> IfcLabel_1
    IfcMetric:Description -> IfcText_1
    IfcAppliedValue_0:ArithmeticOperator -> IfcArithmeticOperatorEnum
    IfcAppliedValue_0:Components -> IfcAppliedValue_1
    IfcAppliedValue_0:AppliedValue -> IfcLengthMeasure
    IfcAppliedValue_0:AppliedValue -> IfcReal
    IfcTable:Rows -> IfcTableRow
    IfcTable:Columns -> IfcTableColumn
    IfcTableColumn:Identifier -> IfcIdentifier
    IfcTableColumn:Name -> IfcLabel_0
    IfcTableColumn:Description -> IfcText_0
    IfcTableColumn:ReferencePath -> IfcReference_0
    IfcMetric:DataValue[binding="DataValue"]
    IfcReference_1:AttributeIdentifier[binding="Attribute1"]
}
Document Association General

概念 文档关联 描述了对象或对象类型如何关联文档,指示外部文件。文档可以整体引用,例如用于捕获产品手册、数据表、多媒体内容或缩略图。文档中的内容可以从任何对象引用,并可用于同步其他文件中的信息,例如项目管理应用程序的项目计划。

文档的典型元数据,如发布日期、编辑者等,可以与关联一起捕获,但文档内容仍保留在外部文件中。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesDocument:RelatedObjects
    IfcRelAssociatesDocument:Name -> IfcLabel_0
    IfcRelAssociatesDocument:RelatingDocument -> IfcDocumentReference
    IfcDocumentReference:Location -> IfcURIReference
    IfcDocumentReference:Identification -> IfcIdentifier
    IfcDocumentReference:Name -> IfcLabel_1
    IfcDocumentReference:Description -> IfcText
    IfcRelAssociatesDocument:Name[binding="Name"]
}
Library Association General

概念 库关联 描述了对象和对象类型如何关联库实体,指示另一个数据源,例如来自模型服务器、产品库或外部数据库或系统,这些数据源用更多详细信息丰富数据。库可以整体从项目或项目库中引用,指示数据的源和版本。库中的内容可以从项目或项目库中的任何对象、类型对象、属性和某些资源模式实体中引用。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesLibrary:RelatedObjects
    IfcRelAssociatesLibrary:RelatingLibrary -> IfcLibraryReference
    IfcLibraryReference:Location -> IfcURIReference
    IfcLibraryReference:Identification -> IfcIdentifier
    IfcLibraryReference:Name -> IfcLabel
    IfcLibraryReference:Description -> IfcText
    IfcLibraryReference:Language -> IfcLanguageId
    IfcLibraryReference:ReferencedLibrary -> IfcLibraryInformation
    IfcRelAssociatesLibrary:RelatingLibrary[binding="RelatingLibrary"]
}
Material Association General

任何产品或产品类型都可以关联材料,以指示对象的物理组成。

材料可以具有用于表面样式的表示,指示 3D 渲染的颜色、纹理和光反射率。材料可以具有用于填充样式的表示,指示 2D 渲染的颜色、图案和阴影线。材料可以具有密度、弹性、热阻等属性,如本规范中所定义。材料也可以根据引用的行业标准进行分类。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesMaterial:RelatedObjects
}
Material Single General

材料直接与产品和产品类型关联,以表示整个对象的均匀材料。

材料也可以与 IfcTypeObject 关联,为该类型的实例定义材料。如果材料同时在 IfcTypeObjectIfcObject 上进行关联,则直接分配给 IfcObject 的材料具有优先权。

concept {
    IfcObjectDefinition:HasAssociations -> IfcRelAssociatesMaterial:RelatedObjects
    IfcRelAssociatesMaterial:RelatingMaterial -> IfcMaterial
    IfcMaterial -> Material
}
Nesting General

嵌套表示主体结构(称为“主机”)与附加组件(称为“被托管元素”)之间的外部有序部分组成关系。嵌套的概念有多种用法。例如:

  • 嵌套用于产品构件,以指示外部可连接部件,例如安装在水槽上的水龙头或安装在接线盒内的开关。
  • 嵌套用于控制对象,以指示规范层次结构。
  • 嵌套用于过程对象,以指示可能并行或串行发生的从属过程。
  • 嵌套用于资源对象,以指示可能并行或串行发生的从属资源分配。

嵌套是一种双向关系,从主机结构到其附加组件的关系称为嵌套(Nesting),从组件到其包含结构的关系称为托管(Hosting)。

concept {
    IfcObjectDefinition:IsNestedBy -> IfcRelNests:RelatingObject
}
Object Type Predefined Type General

===========================

许多对象实例和对象类型实体都有一个名为 PredefinedType 的特性,该特性由一个特定的枚举组成。这种预定义类型本质上提供了另一个继承级别,以在无需额外实体的情况下进一步区分对象。预定义类型不仅是信息性的;各种规则适用,例如适用的属性集、部件组成和分配端口。如果对象通过 IfcTypeObject 进行类型化,则仅当 IfcTypeObject 处的 PredefinedType 设置为 NOTDEFINED 时,才能使用 IfcObject 实例处的 PredefinedType

请注意,PredefinedType 特性本身是在继承层次结构的叶类中定义的,并为该给定叶类提供了一个特定的枚举特性。

concept {
    IfcTypeObject:Types -> IfcRelDefinesByType:RelatingType
    IfcRelDefinesByType:RelatedObjects -> IfcObject:IsTypedBy
    IfcObject:ObjectType -> IfcLabel

    IfcTypeObject:ElementType[binding="TypeUserDefinedType"]
    IfcTypeObject:PredefinedType[binding="TypePredefinedType"]
    IfcObject:ObjectType[binding="UserDefinedType"]
    IfcObject:PredefinedType[binding="PredefinedType"]
}
Product Type Geometric Representation General

产品类型可以具有表示几何、间隙或其他概念的形状表示。

附加到类型的形状表示使用数据类型 IfcRepresentationMapRepresentationMaps 关系来定义。它提供了存储多个表示图以用于不同目的的手段。为了在产品类型的每个实例中使用表示图,产品实例必须使用“映射几何”概念。

concept {
    IfcTypeProduct:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
}
Product Type Shape General

RepresentationMaps 定义了类型产品形状,并且可以分配多个几何表示。如果通过使用 IfcRelDefinesByType 关系将产品实例分配给该类型,则这些实例必须引用表示映射。该引用由一个或多个 IfcShapeRepresentation 创建,该 IfcShapeRepresentation 具有 IfcMappedItem 作为其 Items,该 IfcMappedItem 将类型产品的 IfcRepresentationMap 放置在空间上下文中,即通过使用笛卡尔变换算子将 IfcRepresentationMap 转换为产品实例的对象坐标系。

图 5.1.3.48.A 说明了通过产品实例的形状表示引用表示映射的示例。在此示例中,笛卡尔变换算子仅使用平移,而不使用旋转、镜像或缩放。

representation map
图 5.1.3.48.A — 具有单一放置的产品类型几何体

图 5.1.3.48.B 说明了通过产品实例的形状表示多次引用表示映射的示例。在此示例中,笛卡尔变换算子仅使用平移,而不使用旋转、镜像或缩放。不同的平移值决定了多个放置的模式。

representation map
图 5.1.3.48.B — 具有多个放置的产品类型几何体
Property Sets for Objects General

用于对象的属性集 概念模板描述了对象实例如何与一个或多个属性集相关联。一个属性集包含一个或多个属性。单个属性的数据类型是单值、枚举值、有界值、表值、引用值、列表值以及属性实例的组合。

属性集也可以与对象类型相关联,请参阅 用于类型的属性集 概念。然后,它们定义了所有相同类型实例的通用属性。如果同一属性(按名称)由同一属性集(按名称)提供,则直接分配给对象实例的属性将覆盖分配给对象类型的属性。

concept {
    IfcObject:IsDefinedBy -> IfcRelDefinesByProperties:RelatedObjects
    IfcRelDefinesByProperties:RelatingPropertyDefinition -> IfcPropertySet
    IfcPropertySet:HasProperties -> IfcPropertySingleValue
    IfcPropertySet:HasProperties -> IfcPropertyBoundedValue
    IfcPropertySet:HasProperties -> IfcPropertyEnumeratedValue
    IfcPropertySet:HasProperties -> IfcPropertyListValue
    IfcPropertySet:HasProperties -> IfcPropertyTableValue
    IfcPropertySingleValue -> Single_Value
    IfcPropertyBoundedValue -> Bounded_Value
    IfcPropertyEnumeratedValue -> Enumerated_Value
    IfcPropertyListValue -> List_Value
    IfcPropertyTableValue -> Table_Value
    IfcObject:PredefinedType[binding="PredefinedType"]
    IfcPropertySet:Name[binding="PsetName"]
    IfcPropertySet:HasProperties[binding="Properties"]
}

此概念可应用于以下资源

Property Sets for Types General

用于类型的属性集 概念模板描述了对象类型如何与一个或多个属性集相关联。一个属性集包含一个或多个属性。单个属性的数据类型是单值、枚举值、有界值、表值、引用值、列表值以及属性实例的组合。

分配给对象类型的属性值同样适用于该对象类型的所有实例,请参阅 对象类型定义 概念,除非它被具有相同名称的属性在具有相同名称的属性集中被单个对象实例覆盖。

concept {
    IfcTypeObject:HasPropertySets -> IfcPropertySet
    IfcPropertySet:HasProperties -> IfcPropertySingleValue
    IfcPropertySet:HasProperties -> IfcPropertyBoundedValue
    IfcPropertySet:HasProperties -> IfcPropertyEnumeratedValue
    IfcPropertySet:HasProperties -> IfcPropertyListValue
    IfcPropertySet:HasProperties -> IfcPropertyTableValue
    IfcPropertySingleValue -> Single_Value
    IfcPropertyBoundedValue -> Bounded_Value
    IfcPropertyEnumeratedValue -> Enumerated_Value
    IfcPropertyListValue -> List_Value
    IfcPropertyTableValue -> Table_Value
    IfcPropertySet:Name[binding="PsetName"]
}
Revision Control General

使用 IfcOwnerHistory 捕获所有权、历史记录和合并状态。

Software Identity General

IfcRoot 分配全局唯一 ID。此外,它还可以为概念提供名称和描述。

Type Body AdvancedBrep Geometry General
concept {
    IfcTypeProduct:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcAdvancedBrep
    IfcAdvancedBrep:Outer -> IfcClosedShell
    IfcClosedShell:CfsFaces -> IfcAdvancedFace
    IfcAdvancedFace:Bounds -> IfcFaceOuterBound
    IfcAdvancedFace:FaceSurface -> IfcBSplineSurfaceWithKnots
    IfcFaceOuterBound:Bound -> IfcEdgeLoop
    IfcFaceOuterBound:Orientation -> IfcBoolean_2
    IfcEdgeLoop:EdgeList -> IfcOrientedEdge
    IfcOrientedEdge:EdgeElement -> IfcEdgeCurve
    IfcOrientedEdge:Orientation -> IfcBoolean_1
    IfcEdgeCurve:EdgeGeometry -> IfcBSplineCurveWithKnots
    IfcEdgeCurve:EdgeStart -> IfcVertexPoint_0
    IfcEdgeCurve:EdgeEnd -> IfcVertexPoint_1
    IfcEdgeCurve:SameSense -> IfcBoolean_0
    IfcBSplineCurveWithKnots:Degree -> IfcInteger_0
    IfcBSplineCurveWithKnots:ControlPointsList -> IfcCartesianPoint_0
    IfcBSplineCurveWithKnots:CurveForm -> IfcBSplineCurveForm
    IfcBSplineCurveWithKnots:ClosedCurve -> IfcLogical_0
    IfcBSplineCurveWithKnots:SelfIntersect -> IfcLogical_1
    IfcBSplineCurveWithKnots:KnotMultiplicities -> IfcInteger_1
    IfcBSplineCurveWithKnots:Knots -> IfcParameterValue_0
    IfcBSplineCurveWithKnots:KnotSpec -> IfcKnotType_0
    IfcVertexPoint_0:VertexGeometry -> IfcCartesianPoint_1
    IfcVertexPoint_1:VertexGeometry -> IfcCartesianPoint_2
    IfcBSplineSurfaceWithKnots:ControlPointsList -> IfcCartesianPoint_3
    IfcBSplineSurfaceWithKnots:UDegree -> IfcInteger_2
    IfcBSplineSurfaceWithKnots:VDegree -> IfcInteger_3
    IfcBSplineSurfaceWithKnots:SurfaceForm -> IfcBSplineSurfaceForm
    IfcBSplineSurfaceWithKnots:UClosed -> IfcLogical_2
    IfcBSplineSurfaceWithKnots:VClosed -> IfcLogical_3
    IfcBSplineSurfaceWithKnots:SelfIntersect -> IfcLogical_4
    IfcBSplineSurfaceWithKnots:UMultiplicities -> IfcInteger_4
    IfcBSplineSurfaceWithKnots:VMultiplicities -> IfcInteger_5
    IfcBSplineSurfaceWithKnots:UKnots -> IfcParameterValue_1
    IfcBSplineSurfaceWithKnots:VKnots -> IfcParameterValue_2
    IfcBSplineSurfaceWithKnots:KnotSpec -> IfcKnotType_1
    IfcShapeRepresentation:RepresentationType[binding="RepresentationType"]
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Body Brep Geometry General
concept {
    IfcTypeProduct:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcFacetedBrep
    IfcFacetedBrep:Outer -> IfcClosedShell
    IfcClosedShell:CfsFaces -> IfcFace
    IfcFace:Bounds -> IfcFaceOuterBound
    IfcFaceOuterBound:Bound -> IfcPolyLoop
    IfcFaceOuterBound:Orientation -> IfcBoolean
    IfcPolyLoop:Polygon -> IfcCartesianPoint
    IfcShapeRepresentation:RepresentationType[binding="RepresentationType"]
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Body CSG Geometry General
concept {
    IfcTypeProduct:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcCsgSolid
    IfcShapeRepresentation:Items -> IfcBlock
    IfcShapeRepresentation:Items -> IfcRectangularPyramid
    IfcShapeRepresentation:Items -> IfcRightCircularCone
    IfcShapeRepresentation:Items -> IfcRightCircularCylinder
    IfcShapeRepresentation:Items -> IfcSphere
    IfcCsgSolid:TreeRootExpression -> IfcBooleanResult
    IfcBooleanResult:Operator -> IfcBooleanOperator
    IfcBooleanResult:FirstOperand -> IfcBooleanOperand_0
    IfcBooleanResult:SecondOperand -> IfcBooleanOperand_1
    IfcShapeRepresentation:RepresentationType[binding="RepresentationType"]
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Body Geometry General

主体表示定义了产品类型的物理形状。

concept {
    IfcTypeProduct:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:RepresentationType[binding="RepresentationType"]
    IfcShapeRepresentation:Items[binding="Geometry"]
}
表 5.1.3.48.E

5.1.3.48.7 形式化表示(Formal representation)

ENTITY IfcTypeProduct
 SUPERTYPE OF (ONEOF
	(IfcElementType
	,IfcSpatialElementType))
 SUBTYPE OF (IfcTypeObject);
	RepresentationMaps : OPTIONAL LIST [1:?] OF UNIQUE IfcRepresentationMap;
	Tag : OPTIONAL IfcLabel;
 INVERSE
	ReferencedBy : SET [0:?] OF IfcRelAssignsToProduct FOR RelatingProduct;
 WHERE
	ApplicableOccurrence : NOT(EXISTS(SELF\IfcTypeObject.Types[1])) OR
(SIZEOF(QUERY(temp <* SELF\IfcTypeObject.Types[1].RelatedObjects |
  NOT('IFC4X3_DEV_62887e3f.IFCPRODUCT' IN TYPEOF(temp)))
) = 0);
END_ENTITY;

5.1.3.48.8 参考文献