IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

7.5.3.60 IfcTubeBundleType(管束类型)

7.5.3.60.1 语义定义(Semantic definition)

管束设备类型 IfcTubeBundleType 定义了管束实例的通用共享信息。共享信息集可能包括:

  • 共享属性集的通用属性
  • 通用表示
  • 通用材料
  • 元素的通用组成
  • 通用端口

它用于定义管束类型规范,指示该产品类型的所有实例共有的特定产品信息。IfcTubeBundleType 可使用 IfcRelDeclaresIfcProjectIfcProjectLibrary 中声明,并且可以携带或不携带该类型的实例进行交换。IfcTubeBundleType 的实例由 IfcTubeBundle 的实例表示。有关支持的属性集、材料、组成和端口,请参阅 IfcTubeBundle 的文档。

7.5.3.60.2 实体继承(Entity inheritance)

7.5.3.60.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 的引用,从而指向由该类型定义的那些实例对象。

IfcTypeProduct (3)
7 RepresentationMaps OPTIONAL LIST [1:?] OF UNIQUE IfcRepresentationMap

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

8 Tag OPTIONAL IfcLabel

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

ReferencedBy SET [0:?] OF IfcRelAssignsToProduct FOR RelatingProduct

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

IfcElementType (1)
9 ElementType OPTIONAL IfcLabel

类型表示特定的类型,该类型进一步指示对象。其使用必须在可实例化的子类型级别上建立。特别是,如果“PredefinedType”属性枚举设置为 USERDEFINED,则它包含用户定义的类型。

点击显示 18 个隐藏的继承特性 点击隐藏 18 个继承特性
IfcTubeBundleType (1)
10 PredefinedType IfcTubeBundleTypeEnum

定义了管束的类型。

表 7.5.3.60.A

7.5.3.60.4 形式化命题(Formal propositions)

名称 描述
CorrectPredefinedType

无可用描述

(PredefinedType <> IfcTubeBundleTypeEnum.USERDEFINED) OR
 ((PredefinedType = IfcTubeBundleTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType))
表 7.5.3.60.D

7.5.3.60.5 属性集

  • Pset_Condition
    • AssessmentDate
    • AssessmentCondition
    • AssessmentDescription
    • AssessmentType
    • AssessmentMethod
    • LastAssessmentReport
    • NextAssessmentDate
    • AssessmentFrequency
  • Pset_ConstructionAdministration
    • ProcurementMethod
    • SpecificationSectionNumber
    • SubmittalIdentifer
  • Pset_ElectricalDeviceCommon
    • RatedCurrent
    • RatedVoltage
    • NominalFrequencyRange
    • PowerFactor
    • ConductorFunction
    • NumberOfPoles
    • HasProtectiveEarth
    • InsulationStandardClass
    • IP_Code
    • IK_Code
    • EarthingStyle
    • HeatDissipation
    • Power
    • NominalPowerConsumption
    • NumberOfPowerSupplyPorts
  • Pset_ElectricalDeviceCompliance
    • ElectroMagneticStandardsCompliance
    • ExplosiveAtmosphereStandardsCompliance
    • FireProofingStandardsCompliance
    • LightningProtectionStandardsCompliance
  • Pset_ElementKinematics
    • CyclicPath
    • CyclicRange
    • LinearPath
    • LinearRange
    • MaximumAngularVelocity
    • MaximumConstantSpeed
    • MinimumTime
  • Pset_ElementSize
    • NominalLength
    • NominalWidth
    • NominalHeight
  • Pset_EnergyRequirements
    • EnergyConsumption
    • PowerDemand
    • EnergySourceLabel
    • EnergyConversionEfficiency
  • Pset_EnvironmentalCondition
    • ReferenceAirRelativeHumidity
    • ReferenceEnvironmentTemperature
    • MaximumAtmosphericPressure
    • StorageTemperatureRange
    • MaximumWindSpeed
    • OperationalTemperatureRange
    • MaximumRainIntensity
    • SaltMistLevel
    • SeismicResistance
    • SmokeLevel
    • MaximumSolarRadiation
  • Pset_EnvironmentalEmissions
    • CarbonDioxideEmissions
    • SulphurDioxideEmissions
    • NitrogenOxidesEmissions
    • ParticulateMatterEmissions
    • NoiseEmissions
  • Pset_EnvironmentalImpactIndicators
    • Reference
    • FunctionalUnitReference
    • IndicatorsUnit
    • LifeCyclePhase
    • ExpectedServiceLife
    • TotalPrimaryEnergyConsumptionPerUnit
    • WaterConsumptionPerUnit
    • HazardousWastePerUnit
    • NonHazardousWastePerUnit
    • ClimateChangePerUnit
    • AtmosphericAcidificationPerUnit
    • RenewableEnergyConsumptionPerUnit
    • NonRenewableEnergyConsumptionPerUnit
    • ResourceDepletionPerUnit
    • InertWastePerUnit
    • RadioactiveWastePerUnit
    • StratosphericOzoneLayerDestructionPerUnit
    • PhotochemicalOzoneFormationPerUnit
    • EutrophicationPerUnit
  • Pset_EnvironmentalImpactValues
    • TotalPrimaryEnergyConsumption
    • WaterConsumption
    • HazardousWaste
    • NonHazardousWaste
    • ClimateChange
    • AtmosphericAcidification
    • RenewableEnergyConsumption
    • NonRenewableEnergyConsumption
    • ResourceDepletion
    • InertWaste
    • RadioactiveWaste
    • StratosphericOzoneLayerDestruction
    • PhotochemicalOzoneFormation
    • Eutrophication
    • LeadInTime
    • Duration
    • LeadOutTime
  • Pset_MaintenanceStrategy
    • AssetCriticality
    • AssetFrailty
    • AssetPriority
    • MonitoringType
    • AccidentResponse
  • Pset_MaintenanceTriggerCondition
    • ConditionTargetPerformance
    • ConditionMaintenanceLevel
    • ConditionReplacementLevel
    • ConditionDisposalLevel
  • Pset_MaintenanceTriggerDuration
    • DurationTargetPerformance
    • DurationMaintenanceLevel
    • DurationReplacementLevel
    • DurationDisposalLevel
  • Pset_MaintenanceTriggerPerformance
    • TargetPerformance
    • PerformanceMaintenanceLevel
    • ReplacementLevel
    • DisposalLevel
  • Pset_ManufacturerTypeInformation
    • GlobalTradeItemNumber
    • ArticleNumber
    • ModelReference
    • ModelLabel
    • Manufacturer
    • ProductionYear
    • AssemblyPlace
    • OperationalDocument
    • SafetyDocument
    • PerformanceCertificate
  • Pset_Risk
    • RiskName
    • RiskType
    • NatureOfRisk
    • RiskAssessmentMethodology
    • UnmitigatedRiskLikelihood
    • UnmitigatedRiskConsequence
    • UnmitigatedRiskSignificance
    • MitigationPlanned
    • MitigatedRiskLikelihood
    • MitigatedRiskConsequence
    • MitigatedRiskSignificance
    • MitigationProposed
    • AssociatedProduct
    • AssociatedActivity
    • AssociatedLocation
  • Pset_ServiceLife
    • ServiceLifeDuration
    • MeanTimeBetweenFailure
  • Pset_SoundGeneration
    • SoundCurve
  • Pset_Tolerance
    • ToleranceDescription
    • ToleranceBasis
    • OverallTolerance
    • HorizontalTolerance
    • OrthogonalTolerance
    • VerticalTolerance
    • PlanarFlatness
    • HorizontalFlatness
    • ElevationalFlatness
    • SideFlatness
    • OverallOrthogonality
    • HorizontalOrthogonality
    • OrthogonalOrthogonality
    • VerticalOrthogonality
    • OverallStraightness
    • HorizontalStraightness
    • OrthogonalStraightness
    • VerticalStraightness
  • Pset_TubeBundleTypeCommon
    • Reference
    • Status
    • NumberOfRows
    • StaggeredRowSpacing
    • InLineRowSpacing
    • NumberOfCircuits
    • FoulingFactor
    • ThermalConductivity
    • Length
    • Volume
    • NominalDiameter
    • OutsideDiameter
    • InsideDiameter
    • HorizontalSpacing
    • VerticalSpacing
    • HasTurbulator
  • Pset_TubeBundleTypeFinned FINNED
    • Spacing
    • Thickness
    • ThermalConductivity
    • Length
    • Height
    • Diameter
    • FinCorrugatedType
    • HasCoating
  • Pset_Uncertainty
    • UncertaintyBasis
    • UncertaintyDescription
    • HorizontalUncertainty
    • LinearUncertainty
    • OrthogonalUncertainty
    • VerticalUncertainty
  • Pset_Warranty
    • WarrantyIdentifier
    • WarrantyStartDate
    • IsExtendedWarranty
    • WarrantyPeriod
    • WarrantyContent
    • PointOfContact
    • Exclusions
  • Qto_TubeBundleBaseQuantities
    • GrossWeight
    • NetWeight

8.9.3.47.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。此外,它还可以为概念提供名称和描述。

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 转换为产品实例的对象坐标系。

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

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

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

representation map
图 7.5.3.60.C — 具有多个放置的产品类型几何体
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"]
}
IfcElementType (24)
Element Type Predefined Type General

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

如果需要自定义值来描述物理对象类型,可以使用 ElementType 特性来定义此类自定义类型,其中 PredefinedType 设置为 USERDEFINED。

物理元素类型可以通过 Tag 特性进一步识别。这是一个人类可读的标识符,例如元素或项目编号。虽然对此类标签的使用没有限制,但建议 Tag 在其包含的范围内是唯一的。

concept {
    IfcElementType:ElementType -> IfcLabel_0
    IfcElementType:Tag -> IfcLabel_1
}
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 Tessellated Geometry General
concept {
    IfcElementType:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcTriangulatedFaceSet
    IfcLabel_0 -> constraint_0
    constraint_0[label="='Surface'"]
    IfcLabel_1 -> constraint_1
    constraint_1[label="='Tessellation'"]
    IfcTriangulatedFaceSet:Coordinates -> IfcCartesianPointList3D
    IfcTriangulatedFaceSet:Normals -> IfcParameterValue
    IfcTriangulatedFaceSet:HasColours -> IfcIndexedColourMap:MappedTo
    IfcTriangulatedFaceSet:HasTextures -> IfcIndexedTriangleTextureMap:MappedTo
    IfcTriangulatedFaceSet:StyledByItem -> IfcStyledItem:Item
    IfcCartesianPointList3D:CoordList -> IfcLengthMeasure
    IfcIndexedColourMap:Colours -> IfcColourRgbList
    IfcColourRgbList:ColourList -> IfcNormalisedRatioMeasure
    IfcIndexedTriangleTextureMap:Maps -> IfcImageTexture
    IfcImageTexture -> Image_Texture
    IfcStyledItem:Styles -> IfcSurfaceStyle
    IfcSurfaceStyle -> Surface_Color_Style
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Element Aggregation General

元素类型可以定义聚合组件。

此类组件的放置可以显式使用相对于封闭的_IfcElementType_的_IfcLocalPlacement_来定义,或者如果_IfcElement.ObjectPlacement_为空,则隐式定义。

如果给定的_IfcElementType_被实例化为一个实例,那么该实例必须包含等效的聚合元素,其名称与元素类型内的名称相对应。

concept {
    IfcElementType:IsDecomposedBy -> IfcRelAggregates:RelatingObject
    IfcRelAggregates:RelatedObjects -> IfcElement
    IfcElementType:PredefinedType[binding="PredefinedType"]
    IfcRelAggregates:RelatedObjects[binding="RelatedObjects"]
}
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 转换为产品实例的对象坐标系。

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

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

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

representation map
图 7.5.3.60.C — 具有多个放置的产品类型几何体
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 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"]
}
Type Element Nesting General

被托管的组件可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,被托管的组件没有定义类型,但作为占位符,指示包含类型对象的实例应使用被托管组件的重复列表,其中类型在每个实例处定义。

此关系不同于 IfcRelAggregates,后者用于在指定位置定义构件的显式分解;此嵌套关系指示构件的任意组成,其中位置是参数化定义的——无论是隐式定义(材料剖面、图层或组成部分关联)还是显式定义(约束关联)。

组件的顺序和命名可能基于参数化材料关联。例如,如果 IfcElementType 具有关联的 IfcMaterialLayerSet,则图层根据每个嵌套的 IfcElement 的材料关联来构建,并且每个 IfcMaterialLayerName 必须对应于每个 IfcElementName

concept {
    IfcElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcElement
    IfcElement:Name -> IfcLabel
    IfcRelNests:RelatedObjects[binding="Elements"]
    IfcElement:Name[binding="Name"]
}
IfcDistributionElementType (25)
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"]
}
Element Type Predefined Type General

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

如果需要自定义值来描述物理对象类型,可以使用 ElementType 特性来定义此类自定义类型,其中 PredefinedType 设置为 USERDEFINED。

物理元素类型可以通过 Tag 特性进一步识别。这是一个人类可读的标识符,例如元素或项目编号。虽然对此类标签的使用没有限制,但建议 Tag 在其包含的范围内是唯一的。

concept {
    IfcElementType:ElementType -> IfcLabel_0
    IfcElementType:Tag -> IfcLabel_1
}
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 转换为产品实例的对象坐标系。

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

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

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

representation map
图 7.5.3.60.C — 具有多个放置的产品类型几何体
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"]
}
Type Body Tessellated Geometry General
concept {
    IfcElementType:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcTriangulatedFaceSet
    IfcLabel_0 -> constraint_0
    constraint_0[label="='Surface'"]
    IfcLabel_1 -> constraint_1
    constraint_1[label="='Tessellation'"]
    IfcTriangulatedFaceSet:Coordinates -> IfcCartesianPointList3D
    IfcTriangulatedFaceSet:Normals -> IfcParameterValue
    IfcTriangulatedFaceSet:HasColours -> IfcIndexedColourMap:MappedTo
    IfcTriangulatedFaceSet:HasTextures -> IfcIndexedTriangleTextureMap:MappedTo
    IfcTriangulatedFaceSet:StyledByItem -> IfcStyledItem:Item
    IfcCartesianPointList3D:CoordList -> IfcLengthMeasure
    IfcIndexedColourMap:Colours -> IfcColourRgbList
    IfcColourRgbList:ColourList -> IfcNormalisedRatioMeasure
    IfcIndexedTriangleTextureMap:Maps -> IfcImageTexture
    IfcImageTexture -> Image_Texture
    IfcStyledItem:Styles -> IfcSurfaceStyle
    IfcSurfaceStyle -> Surface_Color_Style
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Element Aggregation General

元素类型可以定义聚合组件。

此类组件的放置可以显式使用相对于封闭的_IfcElementType_的_IfcLocalPlacement_来定义,或者如果_IfcElement.ObjectPlacement_为空,则隐式定义。

如果给定的_IfcElementType_被实例化为一个实例,那么该实例必须包含等效的聚合元素,其名称与元素类型内的名称相对应。

concept {
    IfcElementType:IsDecomposedBy -> IfcRelAggregates:RelatingObject
    IfcRelAggregates:RelatedObjects -> IfcElement
    IfcElementType:PredefinedType[binding="PredefinedType"]
    IfcRelAggregates:RelatedObjects[binding="RelatedObjects"]
}
Type Element Nesting General

被托管的组件可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,被托管的组件没有定义类型,但作为占位符,指示包含类型对象的实例应使用被托管组件的重复列表,其中类型在每个实例处定义。

此关系不同于 IfcRelAggregates,后者用于在指定位置定义构件的显式分解;此嵌套关系指示构件的任意组成,其中位置是参数化定义的——无论是隐式定义(材料剖面、图层或组成部分关联)还是显式定义(约束关联)。

组件的顺序和命名可能基于参数化材料关联。例如,如果 IfcElementType 具有关联的 IfcMaterialLayerSet,则图层根据每个嵌套的 IfcElement 的材料关联来构建,并且每个 IfcMaterialLayerName 必须对应于每个 IfcElementName

concept {
    IfcElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcElement
    IfcElement:Name -> IfcLabel
    IfcRelNests:RelatedObjects[binding="Elements"]
    IfcElement:Name[binding="Name"]
}
Type Port Nesting General

端口可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,端口未连接,但作为占位符,指示包含类型对象的实例将使用端口的重复列表来连接到其他对象实例上的端口。

concept {
    IfcDistributionElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcDistributionPort
    IfcDistributionPort:Name -> IfcLabel
    IfcDistributionPort:FlowDirection -> IfcFlowDirectionEnum
    IfcDistributionPort:SystemType -> IfcDistributionSystemEnum
    IfcDistributionPort:ObjectPlacement -> IfcLocalPlacement
    IfcDistributionPort:PredefinedType -> IfcDistributionPortTypeEnum
    IfcLocalPlacement:RelativePlacement -> IfcAxis2Placement3D
    IfcAxis2Placement3D:Location -> IfcCartesianPoint
    IfcAxis2Placement3D:Axis -> IfcDirection_0
    IfcAxis2Placement3D:RefDirection -> IfcDirection_1
}
IfcDistributionFlowElementType (28)
Type Axis Geometry General

这表示具有 'Curve3D' 的 IfcShapeRepresentation.RepresentationType 并包含单个 IfcBoundedCurve 子类型(如 IfcPolylineIfcTrimmedCurveIfcCompositeCurve)的项目的 3D 流路。对于包含定向端口(具有 SOURCE 或 SINK 的 FlowDirection 的 IfcDistributionPort)的元素,曲线的方向表示流动方向,其中 SINK 端口位于曲线的起点,SOURCE 端口位于曲线的终点。此表示最适用于流段类型(管道、风管、电缆),但也可用于其他元素以定义主要流路(如果适用)。

如果元素类型是参数化定义的(例如定义通用材料轮廓但没有特定长度或路径的流段类型),则不应在类型上断言任何表示。

Type Clearance Geometry General

这表示具有 'Surface3D' 的 RepresentationType 的项目的 3D 净空体积。此类净空区域表示不应与元素实例之间的 'Body' 表示相交的空间,但可以与其他元素实例的 'Clearance' 表示相交。净空空间的具体用途可能用于安全、维护或其他目的。

Type Lighting Geometry General

这表示具有 'LightSource' 的 IfcShapeRepresentation.RepresentationType 并包含一个或多个 IfcLightSource 子类型的项目的光发射。此表示最适用于灯具和照明装置,但也可用于其他发射光的元素。

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"]
}
Element Type Predefined Type General

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

如果需要自定义值来描述物理对象类型,可以使用 ElementType 特性来定义此类自定义类型,其中 PredefinedType 设置为 USERDEFINED。

物理元素类型可以通过 Tag 特性进一步识别。这是一个人类可读的标识符,例如元素或项目编号。虽然对此类标签的使用没有限制,但建议 Tag 在其包含的范围内是唯一的。

concept {
    IfcElementType:ElementType -> IfcLabel_0
    IfcElementType:Tag -> IfcLabel_1
}
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 转换为产品实例的对象坐标系。

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

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

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

representation map
图 7.5.3.60.C — 具有多个放置的产品类型几何体
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"]
}
Type Body Tessellated Geometry General
concept {
    IfcElementType:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcTriangulatedFaceSet
    IfcLabel_0 -> constraint_0
    constraint_0[label="='Surface'"]
    IfcLabel_1 -> constraint_1
    constraint_1[label="='Tessellation'"]
    IfcTriangulatedFaceSet:Coordinates -> IfcCartesianPointList3D
    IfcTriangulatedFaceSet:Normals -> IfcParameterValue
    IfcTriangulatedFaceSet:HasColours -> IfcIndexedColourMap:MappedTo
    IfcTriangulatedFaceSet:HasTextures -> IfcIndexedTriangleTextureMap:MappedTo
    IfcTriangulatedFaceSet:StyledByItem -> IfcStyledItem:Item
    IfcCartesianPointList3D:CoordList -> IfcLengthMeasure
    IfcIndexedColourMap:Colours -> IfcColourRgbList
    IfcColourRgbList:ColourList -> IfcNormalisedRatioMeasure
    IfcIndexedTriangleTextureMap:Maps -> IfcImageTexture
    IfcImageTexture -> Image_Texture
    IfcStyledItem:Styles -> IfcSurfaceStyle
    IfcSurfaceStyle -> Surface_Color_Style
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Element Aggregation General

元素类型可以定义聚合组件。

此类组件的放置可以显式使用相对于封闭的_IfcElementType_的_IfcLocalPlacement_来定义,或者如果_IfcElement.ObjectPlacement_为空,则隐式定义。

如果给定的_IfcElementType_被实例化为一个实例,那么该实例必须包含等效的聚合元素,其名称与元素类型内的名称相对应。

concept {
    IfcElementType:IsDecomposedBy -> IfcRelAggregates:RelatingObject
    IfcRelAggregates:RelatedObjects -> IfcElement
    IfcElementType:PredefinedType[binding="PredefinedType"]
    IfcRelAggregates:RelatedObjects[binding="RelatedObjects"]
}
Type Element Nesting General

被托管的组件可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,被托管的组件没有定义类型,但作为占位符,指示包含类型对象的实例应使用被托管组件的重复列表,其中类型在每个实例处定义。

此关系不同于 IfcRelAggregates,后者用于在指定位置定义构件的显式分解;此嵌套关系指示构件的任意组成,其中位置是参数化定义的——无论是隐式定义(材料剖面、图层或组成部分关联)还是显式定义(约束关联)。

组件的顺序和命名可能基于参数化材料关联。例如,如果 IfcElementType 具有关联的 IfcMaterialLayerSet,则图层根据每个嵌套的 IfcElement 的材料关联来构建,并且每个 IfcMaterialLayerName 必须对应于每个 IfcElementName

concept {
    IfcElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcElement
    IfcElement:Name -> IfcLabel
    IfcRelNests:RelatedObjects[binding="Elements"]
    IfcElement:Name[binding="Name"]
}
Type Port Nesting General

端口可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,端口未连接,但作为占位符,指示包含类型对象的实例将使用端口的重复列表来连接到其他对象实例上的端口。

concept {
    IfcDistributionElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcDistributionPort
    IfcDistributionPort:Name -> IfcLabel
    IfcDistributionPort:FlowDirection -> IfcFlowDirectionEnum
    IfcDistributionPort:SystemType -> IfcDistributionSystemEnum
    IfcDistributionPort:ObjectPlacement -> IfcLocalPlacement
    IfcDistributionPort:PredefinedType -> IfcDistributionPortTypeEnum
    IfcLocalPlacement:RelativePlacement -> IfcAxis2Placement3D
    IfcAxis2Placement3D:Location -> IfcCartesianPoint
    IfcAxis2Placement3D:Axis -> IfcDirection_0
    IfcAxis2Placement3D:RefDirection -> IfcDirection_1
}
IfcEnergyConversionDeviceType (28)
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"]
}
Element Type Predefined Type General

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

如果需要自定义值来描述物理对象类型,可以使用 ElementType 特性来定义此类自定义类型,其中 PredefinedType 设置为 USERDEFINED。

物理元素类型可以通过 Tag 特性进一步识别。这是一个人类可读的标识符,例如元素或项目编号。虽然对此类标签的使用没有限制,但建议 Tag 在其包含的范围内是唯一的。

concept {
    IfcElementType:ElementType -> IfcLabel_0
    IfcElementType:Tag -> IfcLabel_1
}
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 转换为产品实例的对象坐标系。

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

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

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

representation map
图 7.5.3.60.C — 具有多个放置的产品类型几何体
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 Axis Geometry General

这表示具有 'Curve3D' 的 IfcShapeRepresentation.RepresentationType 并包含单个 IfcBoundedCurve 子类型(如 IfcPolylineIfcTrimmedCurveIfcCompositeCurve)的项目的 3D 流路。对于包含定向端口(具有 SOURCE 或 SINK 的 FlowDirection 的 IfcDistributionPort)的元素,曲线的方向表示流动方向,其中 SINK 端口位于曲线的起点,SOURCE 端口位于曲线的终点。此表示最适用于流段类型(管道、风管、电缆),但也可用于其他元素以定义主要流路(如果适用)。

如果元素类型是参数化定义的(例如定义通用材料轮廓但没有特定长度或路径的流段类型),则不应在类型上断言任何表示。

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"]
}
Type Body Tessellated Geometry General
concept {
    IfcElementType:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcTriangulatedFaceSet
    IfcLabel_0 -> constraint_0
    constraint_0[label="='Surface'"]
    IfcLabel_1 -> constraint_1
    constraint_1[label="='Tessellation'"]
    IfcTriangulatedFaceSet:Coordinates -> IfcCartesianPointList3D
    IfcTriangulatedFaceSet:Normals -> IfcParameterValue
    IfcTriangulatedFaceSet:HasColours -> IfcIndexedColourMap:MappedTo
    IfcTriangulatedFaceSet:HasTextures -> IfcIndexedTriangleTextureMap:MappedTo
    IfcTriangulatedFaceSet:StyledByItem -> IfcStyledItem:Item
    IfcCartesianPointList3D:CoordList -> IfcLengthMeasure
    IfcIndexedColourMap:Colours -> IfcColourRgbList
    IfcColourRgbList:ColourList -> IfcNormalisedRatioMeasure
    IfcIndexedTriangleTextureMap:Maps -> IfcImageTexture
    IfcImageTexture -> Image_Texture
    IfcStyledItem:Styles -> IfcSurfaceStyle
    IfcSurfaceStyle -> Surface_Color_Style
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Clearance Geometry General

这表示具有 'Surface3D' 的 RepresentationType 的项目的 3D 净空体积。此类净空区域表示不应与元素实例之间的 'Body' 表示相交的空间,但可以与其他元素实例的 'Clearance' 表示相交。净空空间的具体用途可能用于安全、维护或其他目的。

Type Element Aggregation General

元素类型可以定义聚合组件。

此类组件的放置可以显式使用相对于封闭的_IfcElementType_的_IfcLocalPlacement_来定义,或者如果_IfcElement.ObjectPlacement_为空,则隐式定义。

如果给定的_IfcElementType_被实例化为一个实例,那么该实例必须包含等效的聚合元素,其名称与元素类型内的名称相对应。

concept {
    IfcElementType:IsDecomposedBy -> IfcRelAggregates:RelatingObject
    IfcRelAggregates:RelatedObjects -> IfcElement
    IfcElementType:PredefinedType[binding="PredefinedType"]
    IfcRelAggregates:RelatedObjects[binding="RelatedObjects"]
}
Type Element Nesting General

被托管的组件可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,被托管的组件没有定义类型,但作为占位符,指示包含类型对象的实例应使用被托管组件的重复列表,其中类型在每个实例处定义。

此关系不同于 IfcRelAggregates,后者用于在指定位置定义构件的显式分解;此嵌套关系指示构件的任意组成,其中位置是参数化定义的——无论是隐式定义(材料剖面、图层或组成部分关联)还是显式定义(约束关联)。

组件的顺序和命名可能基于参数化材料关联。例如,如果 IfcElementType 具有关联的 IfcMaterialLayerSet,则图层根据每个嵌套的 IfcElement 的材料关联来构建,并且每个 IfcMaterialLayerName 必须对应于每个 IfcElementName

concept {
    IfcElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcElement
    IfcElement:Name -> IfcLabel
    IfcRelNests:RelatedObjects[binding="Elements"]
    IfcElement:Name[binding="Name"]
}
Type Lighting Geometry General

这表示具有 'LightSource' 的 IfcShapeRepresentation.RepresentationType 并包含一个或多个 IfcLightSource 子类型的项目的光发射。此表示最适用于灯具和照明装置,但也可用于其他发射光的元素。

Type Port Nesting General

端口可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,端口未连接,但作为占位符,指示包含类型对象的实例将使用端口的重复列表来连接到其他对象实例上的端口。

concept {
    IfcDistributionElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcDistributionPort
    IfcDistributionPort:Name -> IfcLabel
    IfcDistributionPort:FlowDirection -> IfcFlowDirectionEnum
    IfcDistributionPort:SystemType -> IfcDistributionSystemEnum
    IfcDistributionPort:ObjectPlacement -> IfcLocalPlacement
    IfcDistributionPort:PredefinedType -> IfcDistributionPortTypeEnum
    IfcLocalPlacement:RelativePlacement -> IfcAxis2Placement3D
    IfcAxis2Placement3D:Location -> IfcCartesianPoint
    IfcAxis2Placement3D:Axis -> IfcDirection_0
    IfcAxis2Placement3D:RefDirection -> IfcDirection_1
}
点击显示 151 个隐藏的继承概念 点击隐藏 151 个继承概念
IfcTubeBundleType (29)
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"]
}
Element Type Predefined Type General

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

如果需要自定义值来描述物理对象类型,可以使用 ElementType 特性来定义此类自定义类型,其中 PredefinedType 设置为 USERDEFINED。

物理元素类型可以通过 Tag 特性进一步识别。这是一个人类可读的标识符,例如元素或项目编号。虽然对此类标签的使用没有限制,但建议 Tag 在其包含的范围内是唯一的。

concept {
    IfcElementType:ElementType -> IfcLabel_0
    IfcElementType:Tag -> IfcLabel_1
}
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 转换为产品实例的对象坐标系。

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

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

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

representation map
图 7.5.3.60.C — 具有多个放置的产品类型几何体
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"]
}
Quantity Sets General

任何对象的专门化都可以与多个数量集实例相关联。一个数量集包含多个数量实例。数量实例值的类型是计数、长度、面积、体积、重量、时间,或数量的组合。每个数量由其名称、值以及可选的描述和公式定义。

数量集通过 IfcElementQuantity 的实例来表示,其中 Name 属性确定了数量集的通用标识符。本规范包含一些预定义数量集,每个数量集都提供了模板定义。模板的名称必须用作 Name 属性的值。MethodOfMeasurement 属性指定了计算各个数量值的方法。对于本规范中包含的数量集模板,MethodOfMeasurement 的值应为“BaseQuantities”。

concept {
    IfcObject:IsDefinedBy -> IfcRelDefinesByProperties:RelatedObjects
    IfcRelDefinesByProperties:RelatingPropertyDefinition -> IfcElementQuantity
    IfcElementQuantity:Name -> IfcLabel_0
    IfcElementQuantity:Description -> IfcText
    IfcElementQuantity:MethodOfMeasurement -> IfcLabel_1
    IfcElementQuantity:Quantities -> IfcQuantityLength
    IfcElementQuantity:Quantities -> IfcQuantityArea
    IfcElementQuantity:Quantities -> IfcQuantityVolume
    IfcElementQuantity:Quantities -> IfcQuantityWeight
    IfcElementQuantity:Quantities -> IfcQuantityCount
    IfcElementQuantity:Quantities -> IfcQuantityTime
    IfcQuantityLength -> Length_Quantity
    IfcQuantityArea -> Area_Quantity
    IfcQuantityVolume -> Volume_Quantity
    IfcQuantityWeight -> Weight_Quantity
    IfcQuantityCount -> Count_Quantity
    IfcQuantityTime -> Time_Quantity
    IfcObject:PredefinedType[binding="PredefinedType"]
    IfcElementQuantity:Name[binding="QsetName"]
    IfcElementQuantity:Quantities[binding="Quantities"]
}

此概念可应用于以下资源

Revision Control General

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

Software Identity General

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

Type Axis Geometry General

这表示具有 'Curve3D' 的 IfcShapeRepresentation.RepresentationType 并包含单个 IfcBoundedCurve 子类型(如 IfcPolylineIfcTrimmedCurveIfcCompositeCurve)的项目的 3D 流路。对于包含定向端口(具有 SOURCE 或 SINK 的 FlowDirection 的 IfcDistributionPort)的元素,曲线的方向表示流动方向,其中 SINK 端口位于曲线的起点,SOURCE 端口位于曲线的终点。此表示最适用于流段类型(管道、风管、电缆),但也可用于其他元素以定义主要流路(如果适用)。

如果元素类型是参数化定义的(例如定义通用材料轮廓但没有特定长度或路径的流段类型),则不应在类型上断言任何表示。

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"]
}
Type Body Tessellated Geometry General
concept {
    IfcElementType:RepresentationMaps -> IfcRepresentationMap
    IfcRepresentationMap:MappedRepresentation -> IfcShapeRepresentation
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement3D
    IfcRepresentationMap:MappingOrigin -> IfcAxis2Placement2D
    IfcShapeRepresentation:ContextOfItems -> IfcGeometricRepresentationContext
    IfcShapeRepresentation:RepresentationIdentifier -> IfcLabel_0
    IfcShapeRepresentation:RepresentationType -> IfcLabel_1
    IfcShapeRepresentation:Items -> IfcTriangulatedFaceSet
    IfcLabel_0 -> constraint_0
    constraint_0[label="='Surface'"]
    IfcLabel_1 -> constraint_1
    constraint_1[label="='Tessellation'"]
    IfcTriangulatedFaceSet:Coordinates -> IfcCartesianPointList3D
    IfcTriangulatedFaceSet:Normals -> IfcParameterValue
    IfcTriangulatedFaceSet:HasColours -> IfcIndexedColourMap:MappedTo
    IfcTriangulatedFaceSet:HasTextures -> IfcIndexedTriangleTextureMap:MappedTo
    IfcTriangulatedFaceSet:StyledByItem -> IfcStyledItem:Item
    IfcCartesianPointList3D:CoordList -> IfcLengthMeasure
    IfcIndexedColourMap:Colours -> IfcColourRgbList
    IfcColourRgbList:ColourList -> IfcNormalisedRatioMeasure
    IfcIndexedTriangleTextureMap:Maps -> IfcImageTexture
    IfcImageTexture -> Image_Texture
    IfcStyledItem:Styles -> IfcSurfaceStyle
    IfcSurfaceStyle -> Surface_Color_Style
    IfcShapeRepresentation:Items[binding="Geometry"]
}
Type Clearance Geometry General

这表示具有 'Surface3D' 的 RepresentationType 的项目的 3D 净空体积。此类净空区域表示不应与元素实例之间的 'Body' 表示相交的空间,但可以与其他元素实例的 'Clearance' 表示相交。净空空间的具体用途可能用于安全、维护或其他目的。

Type Element Aggregation General

元素类型可以定义聚合组件。

此类组件的放置可以显式使用相对于封闭的_IfcElementType_的_IfcLocalPlacement_来定义,或者如果_IfcElement.ObjectPlacement_为空,则隐式定义。

如果给定的_IfcElementType_被实例化为一个实例,那么该实例必须包含等效的聚合元素,其名称与元素类型内的名称相对应。

concept {
    IfcElementType:IsDecomposedBy -> IfcRelAggregates:RelatingObject
    IfcRelAggregates:RelatedObjects -> IfcElement
    IfcElementType:PredefinedType[binding="PredefinedType"]
    IfcRelAggregates:RelatedObjects[binding="RelatedObjects"]
}
Type Element Nesting General

被托管的组件可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,被托管的组件没有定义类型,但作为占位符,指示包含类型对象的实例应使用被托管组件的重复列表,其中类型在每个实例处定义。

此关系不同于 IfcRelAggregates,后者用于在指定位置定义构件的显式分解;此嵌套关系指示构件的任意组成,其中位置是参数化定义的——无论是隐式定义(材料剖面、图层或组成部分关联)还是显式定义(约束关联)。

组件的顺序和命名可能基于参数化材料关联。例如,如果 IfcElementType 具有关联的 IfcMaterialLayerSet,则图层根据每个嵌套的 IfcElement 的材料关联来构建,并且每个 IfcMaterialLayerName 必须对应于每个 IfcElementName

concept {
    IfcElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcElement
    IfcElement:Name -> IfcLabel
    IfcRelNests:RelatedObjects[binding="Elements"]
    IfcElement:Name[binding="Name"]
}
Type Lighting Geometry General

这表示具有 'LightSource' 的 IfcShapeRepresentation.RepresentationType 并包含一个或多个 IfcLightSource 子类型的项目的光发射。此表示最适用于灯具和照明装置,但也可用于其他发射光的元素。

Type Port Nesting General

端口可以在类型上指定,遵循与相应实例相同的规则。

在类型对象上,端口未连接,但作为占位符,指示包含类型对象的实例将使用端口的重复列表来连接到其他对象实例上的端口。

concept {
    IfcDistributionElementType:IsNestedBy -> IfcRelNests:RelatingObject
    IfcRelNests:RelatedObjects -> IfcDistributionPort
    IfcDistributionPort:Name -> IfcLabel
    IfcDistributionPort:FlowDirection -> IfcFlowDirectionEnum
    IfcDistributionPort:SystemType -> IfcDistributionSystemEnum
    IfcDistributionPort:ObjectPlacement -> IfcLocalPlacement
    IfcDistributionPort:PredefinedType -> IfcDistributionPortTypeEnum
    IfcLocalPlacement:RelativePlacement -> IfcAxis2Placement3D
    IfcAxis2Placement3D:Location -> IfcCartesianPoint
    IfcAxis2Placement3D:Axis -> IfcDirection_0
    IfcAxis2Placement3D:RefDirection -> IfcDirection_1
}
表 7.5.3.60.E

8.9.3.47.7 形式化表示(Formal representation)

ENTITY IfcTubeBundleType
 SUBTYPE OF (IfcEnergyConversionDeviceType);
	PredefinedType : IfcTubeBundleTypeEnum;
 WHERE
	CorrectPredefinedType : (PredefinedType <> IfcTubeBundleTypeEnum.USERDEFINED) OR
 ((PredefinedType = IfcTubeBundleTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType));
END_ENTITY;

8.9.3.47.8 参考文献