IFC 4.3.0.1 (IFC4X3_TC1)

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 1. GlobalId [1:1] 2. OwnerHistory [0:1] 3. Name [0:1] 4. Description [0:1]      HasAssignments [0:?]      Nests [0:1]      IsNestedBy [0:?]      HasContext [0:1]      IsDecomposedBy [0:?]      Decomposes [0:1]      HasAssociations [0:?] IfcRelAssociatesConstraint IfcRelAssociatesConstraint 1. GlobalId [1:1] 2. OwnerHistory [0:1] 3. Name [0:1] 4. Description [0:1] 5. RelatedObjects [1:?] 6. Intent [0:1] 7. RelatingConstraint [1:1] IfcObjectDefinition:HasAssociations1->IfcRelAssociatesConstraint:RelatedObjects0 IfcObjective IfcObjective 1. Name [1:1] 2. Description [0:1] 3. ConstraintGrade [1:1] 4. ConstraintSource [0:1] 5. CreatingActor [0:1] 6. CreationTime [0:1] 7. UserDefinedGrade [0:1]      HasExternalReferences [0:?]      PropertiesForConstraint [0:?] 8. BenchmarkValues [1:?] 9. LogicalAggregator [0:1] 10. ObjectiveQualifier [1:1] 11. UserDefinedQualifier [0:1] IfcRelAssociatesConstraint:RelatingConstraint1->IfcObjective:IfcObjective0 IfcMetric IfcMetric 1. Name [1:1] 2. Description [0:1] 3. ConstraintGrade [1:1] 4. ConstraintSource [0:1] 5. CreatingActor [0:1] 6. CreationTime [0:1] 7. UserDefinedGrade [0:1]      HasExternalReferences [0:?]      PropertiesForConstraint [0:?] 8. Benchmark [1:1] 9. ValueSource [0:1] DataValue 10. DataValue [0:1] 11. 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 1. Name [0:1] 2. Description [0:1] 3. AppliedValue [0:1] 4. UnitBasis [0:1] 5. ApplicableDate [0:1] 6. FixedUntilDate [0:1] 7. Category [0:1] 8. Condition [0:1] 9. ArithmeticOperator [0:1] 10. Components [1:?]      HasExternalReference [0:?] IfcMetric:DataValue1->IfcAppliedValue_0:IfcAppliedValue0 IfcTable IfcTable 1. Name [0:1] 2. Rows [1:?] 3. Columns [1:?] IfcMetric:DataValue1->IfcTable:IfcTable0 IfcBenchmarkEnum IfcBenchmarkEnum IfcMetric:Benchmark1->IfcBenchmarkEnum:IfcBenchmarkEnum0 IfcReference_1 IfcReference 1. TypeIdentifier [0:1] Attribute1 2. AttributeIdentifier [0:1] 3. InstanceName [0:1] 4. ListPositions [1:?] 5. 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 1. Name [0:1] 2. Description [0:1] 3. AppliedValue [0:1] 4. UnitBasis [0:1] 5. ApplicableDate [0:1] 6. FixedUntilDate [0:1] 7. Category [0:1] 8. Condition [0:1] 9. ArithmeticOperator [0:1] 10. 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 1. RowCells [1:?] 2. IsHeading [0:1] IfcTable:Rows1->IfcTableRow:IfcTableRow0 IfcTableColumn IfcTableColumn 1. Identifier [0:1] 2. Name [0:1] 3. Description [0:1] 4. Unit [0:1] 5. 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 1. TypeIdentifier [0:1] 2. AttributeIdentifier [0:1] 3. InstanceName [0:1] 4. ListPositions [1:?] 5. InnerReference [0:1] IfcTableColumn:ReferencePath1->IfcReference_0:IfcReference0
Figure 4.2.3.A

General Usage

ApplicableEntity
IfcObjectDefinition
Table 4.2.3.B