IFC 4.3.x development IfcPropertyEnumeratedValue

Change log


additions where_rules WR21
deletions where_rules WR1
modificationsattributes EnumerationValues is_optionalChanged from False to True Semantic definitions at the entity

A property with an enumerated value, IfcPropertyEnumeratedValue, defines a property object which has a value assigned that is chosen from an enumeration. It defines a property - value combination for which the property Name, an optional Description, the optional EnumerationValues with measure type and optionally an Unit is given.

NOTE  Multiple choices from the property enumeration are supported.

The unit is handled by the Unit attribute, see Table 1 for an example of a enumerated property:

  • If the Unit attribute is not given, then the unit is already implied by the type of IfcMeasureValue or IfcDerivedMeasureValue. The associated unit can be found at the IfcUnitAssignment globally defined at the project level (IfcProject.UnitsInContext).
  • If the Unit attribute is given, then the unit assigned by the unit attribute overrides the globally assigned unit.

More precisely: The IfcPropertyEnumeratedValue defines a property, which value is selected from a defined list of enumerators. The enumerators are stored in a dynamic enumeration of values including the type information from IfcValue (see IfcPropertyEnumeration). This enables applications to use an enumeration value as a property within a property set (IfcPropertySet) including the allowed list of values.

NOTE  An IfcPropertyEnumeratedValue may be exchanged with no values assigned yet. In this case the EnumerationValues are set to NIL.


Name Value
(through IfcValue)
BladeAction Opposed IfcLabel DamperBladeActionEnum
BladeAction Parallel IfcLabel DamperBladeActionEnum

Table 1 — Enumerated property with values, measure types and units


The IfcPropertyEnumeratedValue refers to an IfcPropertyEnumeration, see Table 2 for an example:

Name EnumerationValues Type
(through IfcValue)
DamperBladeActionEnum (Parallel, Opposed, Other, Unset) IfcString -

Table 2 — Property enumeration with enumerators

It is not mandatory to use an instance of IfcPropertyEnumeration to hold the applicable values for IfcPropertyEnumeratedValue, however this is the preferred way. A single instance of IfcPropertyEnumeration can be referenced by multiple instances of IfcPropertyEnumeratedValue.

HISTORY  New entity in IFC2.0.

IFC2x CHANGE  Entity has been renamed from IfcEnumeratedProperty

IFC4 CHANGE  Attribute EnumerationValues has been made OPTIONAL with upward compatibility for file based exchange. Attributes

# Attribute Type Description
HasExternalReferencesSET [0:?] OF IfcExternalReferenceRelationship FOR RelatedResourceObjects Reference to an external reference, e.g. library, classification, or document information, that is associated to the property definition.

> IFC4 CHANGE New inverse attribute.

1 Name IfcIdentifier Name for this property. This label is the significant name string that defines the semantic meaning for the property.
2 Description OPTIONAL IfcText Informative text to explain the property.
PartOfPset SET [0:?] OF IfcPropertySet FOR HasProperties Reference to the IfcPropertySet by which the IfcProperty is referenced.

> IFC4 CHANGE  New inverse attribute to navigate from IfcProperty to IfcPropertySet with upward compatibility for file based exchange.

PropertyForDependanceSET [0:?] OF IfcPropertyDependencyRelationship FOR DependingProperty The property on whose value that of another property depends.
PropertyDependsOn SET [0:?] OF IfcPropertyDependencyRelationship FOR DependantProperty The relating property on which the value of the property depends.
PartOfComplex SET [0:?] OF IfcComplexProperty FOR HasProperties Reference to the IfcComplexProperty in which the IfcProperty is contained.

> IFC4 CHANGE  The cardinality has changed to 0..n to allow reuse of instances of IfcProperty in several IfcComplexProperty with upward compatibility for file based exchange.
HasConstraints SET [0:?] OF IfcResourceConstraintRelationship FOR RelatedResourceObjectsUser-defined constraints for the property.
HasApprovals SET [0:?] OF IfcResourceApprovalRelationship FOR RelatedResourceObjects User-defined approvals for the property.
3 EnumerationValues OPTIONAL LIST [1:?] OF IfcValue Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.

> IFC4 CHANGE  The attribute has been made optional with upward compatibility for file based exchange.
4 EnumerationReference OPTIONAL IfcPropertyEnumeration Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value. Entity inheritance

dot_inheritance IfcPropertyEnumeratedValue IfcPropertyEnumeratedValue IfcSimpleProperty IfcSimpleProperty IfcPropertyEnumeratedValue->IfcSimpleProperty IfcSimpleProperty_children 5 more... IfcSimpleProperty_children->IfcSimpleProperty IfcProperty IfcProperty IfcSimpleProperty->IfcProperty IfcComplexProperty IfcComplexProperty IfcComplexProperty->IfcProperty IfcPropertyAbstraction IfcPropertyAbstraction IfcProperty->IfcPropertyAbstraction IfcPropertyAbstraction_children 3 more... IfcPropertyAbstraction_children->IfcPropertyAbstraction Formal representations

ENTITY IfcPropertyEnumeratedValue
 SUBTYPE OF (IfcSimpleProperty);
	EnumerationValues : OPTIONAL LIST [1:?] OF IfcValue;
	EnumerationReference : OPTIONAL IfcPropertyEnumeration;
	WR21 : NOT(EXISTS(EnumerationReference)) 
OR  NOT(EXISTS(EnumerationValues)) 
OR  (SIZEOF(QUERY(temp <* EnumerationValues |
    temp IN EnumerationReference.EnumerationValues))
    = SIZEOF(EnumerationValues));