IfcConstraint

Definition from IAI: An IfcConstraint is used to define a constraint or limiting value or boundary condition that may be applied to an object or to the value of a property.

> HISTORY: New Entity in IFC Release 2.0

### Use Definition

IfcConstraint may be associated with any subtype of IfcObject through the IfcRelAssociatesConstraint relationship in the IfcControlExtension schema.

A constraint may aggregate other constraints through the IfcConstraintAggregationRelationship through which a logical association between constraints may be applied.

A constraint must have a name applied through the IfcConstraint.Name attribute and optionally, a description through IfcConstraint.Description. For instance, when undertaking a move (instantiated through the IfcMove class), a constraint may be named as a 'Move Start Constraint' or 'Move End Constraint' and described using one of a possible range of move constraints as shown in the table below.

Application of constraints to moves as indicated by this example replaces the use of IfcActionTimeControl class which is now deleted.

Constraint Description | Definition | Benchmark | Grade
ASSOONASPOSSIBLE | Action should commence at the earliest possible opportunity. | GREATERTHANOREQUALTO | SOFT
MUSTSTARTON | Action must start at a prescribed date/time. | EQUALTO | HARD
MUSTSTARTBEFORE | Action must start before a prescribed date/time. | LESSTHANOREQUALTO | HARD
MUSTSTARTAFTER | Action must not start before a prescribed date/time. | GREATERTHANOREQUALTO | HARD
MAYSTARTAFTER | Action may start at any time following a prescribed date/time. | GREATERTHANOREQUALTO | SOFT
MUSTFINISHON | Action must be complete at or by a prescribed date/time. | EQUALTO | HARD
MUSTFINISHBEFORE | Action must be complete before a prescribed date/time. | LESSTHANOREQUALTO | HARD

The constraint is instantiated as the class IfcMetric and uses a Date/Time value through IfcMetricValue. An appropriate benchmark is applied according to the requirement of the constraint (as indicated). The grade of the constraint (hard, soft, advisory) must be specified through IfcConstraint.ConstraintGrade whilst the time at which the constraint is created may be optionally asserted through IfcConstraint.ConstraintTime.

EXPRESS specification:

ENTITY IfcConstraint
ABSTRACT SUPERTYPE OF | (ONEOF(IfcObjective, IfcMetric));
Name | : | IfcLabel;
Description | : | OPTIONAL IfcText;
ConstraintGrade | : | IfcConstraintEnum;
ConstraintSource | : | OPTIONAL IfcLabel;
CreatingActor | : | OPTIONAL IfcActorSelect;
CreationTime | : | OPTIONAL IfcDateTimeSelect;
UserDefinedGrade | : | OPTIONAL IfcLabel;
INVERSE
ClassifiedAs | : | SET OF IfcConstraintClassificationRelationship FOR ClassifiedConstraint;
RelatesConstraints | : | SET OF IfcConstraintRelationship FOR RelatingConstraint;
IsRelatedWith | : | SET OF IfcConstraintRelationship FOR RelatedConstraints;
PropertiesForConstraint | : | SET OF IfcPropertyConstraintRelationship FOR RelatingConstraint;
Aggregates | : | SET OF IfcConstraintAggregationRelationship FOR RelatingConstraint;
IsAggregatedIn | : | SET OF IfcConstraintAggregationRelationship FOR RelatedConstraints;
WHERE
WR11 | : | (ConstraintGrade <> IfcConstraintEnum.USERDEFINED) OR ((ConstraintGrade = IfcConstraintEnum.USERDEFINED) AND EXISTS(SELF\IfcConstraint.UserDefinedGrade));
END_ENTITY;

Attribute definitions:

Name | : | A name to be used for the constraint (e.g., ChillerCoefficientOfPerformance).
Description | : | A description that may apply additional information about a constraint.
ConstraintGrade | : | Enumeration that qualifies the type of constraint.
ConstraintSource | : | Any source material, such as a code or standard, from which the constraint originated.
CreatingActor | : | Person and/or organization that has created the constraint.
CreationTime | : | Time when information specifying the constraint instance was created.
UserDefinedGrade | : | Allows for specification of user defined grade of the constraint beyond the enumeration values (hard, soft, advisory) provided by ConstraintGrade attribute of type IfcConstraintEnum. When a value is provided for attribute UserDefinedGrade in parallel the attribute ConstraintGrade shall have enumeration value USERDEFINED.
ClassifiedAs | : | Reference to the constraint classifications through objectified relationship.
RelatesConstraints | : | References to the objectified relationships that relate other constraints with this constraint.
IsRelatedWith | : | References to the objectified relationships that relate this constraint with other constraints.
PropertiesForConstraint | : | Reference to the properties to which the constraint is applied.
Aggregates | : | Reference to the relationships that collect other constraints into this aggregate constraint.
IsAggregatedIn | : | Reference to the relationships that relate this constraint into aggregate constraints.

Formal Propositions:

WR11 | : | The attribute UserDefinedGrade must be asserted when the value of the IfcConstraintGradeEnum is set to USERDEFINED.

Inheritance graph

ENTITY IfcConstraint;
ENTITY IfcConstraint;
Name | : | IfcLabel;
Description | : | OPTIONAL IfcText;
ConstraintGrade | : | IfcConstraintEnum;
ConstraintSource | : | OPTIONAL IfcLabel;
CreatingActor | : | OPTIONAL IfcActorSelect;
CreationTime | : | OPTIONAL IfcDateTimeSelect;
UserDefinedGrade | : | OPTIONAL IfcLabel;
INVERSE
ClassifiedAs | : | SET OF IfcConstraintClassificationRelationship FOR ClassifiedConstraint;
RelatesConstraints | : | SET OF IfcConstraintRelationship FOR RelatingConstraint;
IsRelatedWith | : | SET OF IfcConstraintRelationship FOR RelatedConstraints;
PropertiesForConstraint | : | SET OF IfcPropertyConstraintRelationship FOR RelatingConstraint;
Aggregates | : | SET OF IfcConstraintAggregationRelationship FOR RelatingConstraint;
IsAggregatedIn | : | SET OF IfcConstraintAggregationRelationship FOR RelatedConstraints;
END_ENTITY;