4.2.3 Constraint Association
The concept Constraint Association describes how object or object types may have associated constraints indicating a qualitative objective or a quantitative metric to be met.
Constraints based on metrics are measurable, such that the status of a metric being valid is computer-interpretable. Metric constraints are based on simple conditional logic such as greater than a particular value or included within a specified list or table. Constraints may be combine multiple metrics using boolean logic such as AND, OR, XOR, or NOT.
The following diagram shows the generic classes and relationships used when applying this concept.
In addition, concepts may have particular importance to common or standardised industry practices and scenarios. For these specific usage scenarios, the tables below shows a recommended list of general usage patterns that users may adopt.
G
IfcObjectDefinition
IfcObjectDefinition
GlobalId
[1:1]
OwnerHistory
[0:1]
Name
[0:1]
Description
[0:1]
HasAssignments
[0:?]
Nests
[0:1]
IsNestedBy
[0:?]
HasContext
[0:1]
IsDecomposedBy
[0:?]
Decomposes
[0:1]
HasAssociations
[0:?]
IfcRelAssociatesConstraint
IfcRelAssociatesConstraint
GlobalId
[1:1]
OwnerHistory
[0:1]
Name
[0:1]
Description
[0:1]
RelatedObjects
[1:?]
Intent
[0:1]
RelatingConstraint
[1:1]
IfcObjectDefinition :HasAssociations1->IfcRelAssociatesConstraint :RelatedObjects0
IfcObjective
IfcObjective
Name
[1:1]
Description
[0:1]
ConstraintGrade
[1:1]
ConstraintSource
[0:1]
CreatingActor
[0:1]
CreationTime
[0:1]
UserDefinedGrade
[0:1]
HasExternalReferences
[0:?]
PropertiesForConstraint
[0:?]
BenchmarkValues
[1:?]
LogicalAggregator
[0:1]
ObjectiveQualifier
[1:1]
UserDefinedQualifier
[0:1]
IfcRelAssociatesConstraint :RelatingConstraint1->IfcObjective :IfcObjective0
IfcMetric
IfcMetric
Name
[1:1]
Description
[0:1]
ConstraintGrade
[1:1]
ConstraintSource
[0:1]
CreatingActor
[0:1]
CreationTime
[0:1]
UserDefinedGrade
[0:1]
HasExternalReferences
[0:?]
PropertiesForConstraint
[0:?]
Benchmark
[1:1]
ValueSource
[0:1]
DataValue
DataValue
[0:1]
ReferencePath
[0:1]
IfcObjective :BenchmarkValues1->IfcMetric :IfcMetric0
IfcObjectiveEnum
IfcObjectiveEnum
IfcObjective :ObjectiveQualifier1->IfcObjectiveEnum :IfcObjectiveEnum0
IfcLogicalOperatorEnum
IfcLogicalOperatorEnum
IfcObjective :LogicalAggregator1->IfcLogicalOperatorEnum :IfcLogicalOperatorEnum0
IfcMetricValueSelect
IfcMetricValueSelect
IfcMetric :DataValue1->IfcMetricValueSelect :IfcMetricValueSelect0
IfcAppliedValue_0
IfcAppliedValue
Name
[0:1]
Description
[0:1]
AppliedValue
[0:1]
UnitBasis
[0:1]
ApplicableDate
[0:1]
FixedUntilDate
[0:1]
Category
[0:1]
Condition
[0:1]
ArithmeticOperator
[0:1]
Components
[1:?]
HasExternalReference
[0:?]
IfcMetric :DataValue1->IfcAppliedValue_0:IfcAppliedValue0
IfcTable
IfcTable
Name
[0:1]
Rows
[1:?]
Columns
[1:?]
IfcMetric :DataValue1->IfcTable :IfcTable0
IfcBenchmarkEnum
IfcBenchmarkEnum
IfcMetric :Benchmark1->IfcBenchmarkEnum :IfcBenchmarkEnum0
IfcReference_1
IfcReference
TypeIdentifier
[0:1]
Attribute1
AttributeIdentifier
[0:1]
InstanceName
[0:1]
ListPositions
[1:?]
InnerReference
[0:1]
IfcMetric :ReferencePath1->IfcReference_1:IfcReference0
IfcLabel_1
IfcLabel
IfcMetric :Name1->IfcLabel_1:IfcLabel0
IfcText_1
IfcText
IfcMetric :Description1->IfcText_1:IfcText0
IfcArithmeticOperatorEnum
IfcArithmeticOperatorEnum
IfcAppliedValue_0:ArithmeticOperator1->IfcArithmeticOperatorEnum :IfcArithmeticOperatorEnum0
IfcAppliedValue_1
IfcAppliedValue
Name
[0:1]
Description
[0:1]
AppliedValue
[0:1]
UnitBasis
[0:1]
ApplicableDate
[0:1]
FixedUntilDate
[0:1]
Category
[0:1]
Condition
[0:1]
ArithmeticOperator
[0:1]
Components
[1:?]
HasExternalReference
[0:?]
IfcAppliedValue_0:Components1->IfcAppliedValue_1:IfcAppliedValue0
IfcLengthMeasure
IfcLengthMeasure
IfcAppliedValue_0:AppliedValue1->IfcLengthMeasure :IfcLengthMeasure0
IfcReal
IfcReal
IfcAppliedValue_0:AppliedValue1->IfcReal :IfcReal0
IfcTableRow
IfcTableRow
RowCells
[1:?]
IsHeading
[0:1]
IfcTable :Rows1->IfcTableRow :IfcTableRow0
IfcTableColumn
IfcTableColumn
Identifier
[0:1]
Name
[0:1]
Description
[0:1]
Unit
[0:1]
ReferencePath
[0:1]
IfcTable :Columns1->IfcTableColumn :IfcTableColumn0
IfcIdentifier
IfcIdentifier
IfcTableColumn :Identifier1->IfcIdentifier :IfcIdentifier0
IfcLabel_0
IfcLabel
IfcTableColumn :Name1->IfcLabel_0:IfcLabel0
IfcText_0
IfcText
IfcTableColumn :Description1->IfcText_0:IfcText0
IfcReference_0
IfcReference
TypeIdentifier
[0:1]
AttributeIdentifier
[0:1]
InstanceName
[0:1]
ListPositions
[1:?]
InnerReference
[0:1]
IfcTableColumn :ReferencePath1->IfcReference_0:IfcReference0
Figure 4.2.3.A
General UsageTable 4.2.3.B