4.4.4 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.

Figure 25 illustrates an instance diagram.

Constraint AssociationIfcObjectDefinitionIfcRelAssociatesConstraintIfcObjectiveIfcMetricIfcLabelIfcTextIfcBenchmarkEnumIfcMetricValueSelectIfcAppliedValueIfcLengthMeasureIfcRealIfcArithmeticOperatorEnumIfcAppliedValueIfcTableIfcTableRowIfcTableColumnIfcIdentifierIfcLabelIfcTextIfcReferenceIfcReferenceIfcLogicalOperatorEnumIfcObjectiveEnum

Figure 25 — Constraint Association

mvdXML Specification
<?xml version="1.0"?>
<ConceptTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="c08b264c-f7c6-479f-af7f-5d645c130ea8" name="Constraint Association" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
  <Rules>
    <AttributeRule AttributeName="HasAssociations">
      <EntityRules>
        <EntityRule EntityName="IfcRelAssociatesConstraint">
          <AttributeRules>
            <AttributeRule AttributeName="RelatingConstraint">
              <EntityRules>
                <EntityRule EntityName="IfcObjective">
                  <AttributeRules>
                    <AttributeRule AttributeName="BenchmarkValues">
                      <EntityRules>
                        <EntityRule EntityName="IfcMetric">
                          <AttributeRules>
                            <AttributeRule RuleID="DataValue" AttributeName="DataValue">
                              <EntityRules>
                                <EntityRule EntityName="IfcMetricValueSelect" />
                                <EntityRule EntityName="IfcAppliedValue">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ArithmeticOperator">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcArithmeticOperatorEnum" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Components">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcAppliedValue" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="AppliedValue">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLengthMeasure" />
                                        <EntityRule EntityName="IfcReal" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcTable">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Rows">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcTableRow" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Columns">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcTableColumn">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Identifier">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcIdentifier" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="Name">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcLabel" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="Description">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcText" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="ReferencePath">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcReference" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Benchmark">
                              <EntityRules>
                                <EntityRule EntityName="IfcBenchmarkEnum" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ReferencePath">
                              <EntityRules>
                                <EntityRule EntityName="IfcReference">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="TypeIdentifier" />
                                    <AttributeRule RuleID="Attribute1" AttributeName="AttributeIdentifier" />
                                    <AttributeRule AttributeName="InnerReference" />
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name">
                              <EntityRules>
                                <EntityRule EntityName="IfcLabel" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Description">
                              <EntityRules>
                                <EntityRule EntityName="IfcText" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ObjectiveQualifier">
                      <EntityRules>
                        <EntityRule EntityName="IfcObjectiveEnum" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="LogicalAggregator">
                      <EntityRules>
                        <EntityRule EntityName="IfcLogicalOperatorEnum" />
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </AttributeRules>
        </EntityRule>
      </EntityRules>
    </AttributeRule>
  </Rules>
</ConceptTemplate>

Link to this page  Link to this page