#### IfcPropertyEnumeratedValue

Natural language names

##### Semantic definitions at the entity

Entity definition

A property with an enumerated value (IfcPropertyEnumeratedValue) defines a property object which has a value assigned which is chosen from an enumeration. It defines a property - value combination for which the property name, the value with measure type (and optional the unit) are given.

> NOTE: Multiple choices from the property enumeration are supported.

The unit is handled by the Unit attribute of the IfcPropertyEnumeration:

- 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. Examples of a property with enumerated value with are:

Name | Value (EnumerationValue) | Type (through IfcValue) | ref. IfcPropertyEnumeration (Name)
BladeAction | Opposed | IfcString | DamperBladeActionEnum
BladeAction | Parallel | IfcString | DamperBladeActionEnum

The IfcPropertyEnumeratedValue refers to an IfcPropertyEnumeration, e.g. for the above:

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

> HISTORY: New Entity in IFC Release 2.0, capabilities enhanced in IFC R2x. The entity has been renamed from IfcEnumeratedProperty in IFC Release 2x.

Attribute definitions

# | Attribute | Type | Cardinality | Description | A
--- | --- | --- | --- | --- | ---
3 | EnumerationValues | IfcValue | L[1:?] | Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided. | X
4 | EnumerationReference | - |  | This attribute is out of scope for this model view definition and shall not be set. |

Formal Propositions

Rule | Description
--- | ---
WR1 | Each enumeration value shall be a member of the list of EnumerationValues at the referenced IfcPropertyEnumeration (if given).

##### Inherited definitions from supertypes

Entity inheritance
Attribute inheritance

# | Attribute | Type | Cardinality | Description | A
--- | --- | --- | --- | --- | ---
IfcProperty
1 | Name | IfcIdentifier | [1:1] | Name for this property. This label is the significant name string that defines the semantic meaning for the property. | X
2 | Description | - |  | This attribute is out of scope for this model view definition and shall not be set. |
IfcSimpleProperty
IfcPropertyEnumeratedValue
3 | EnumerationValues | IfcValue | L[1:?] | Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided. | X
4 | EnumerationReference | - |  | This attribute is out of scope for this model view definition and shall not be set. |

##### Formal representations

XSD Specification
`<xs:element name="IfcPropertyEnumeratedValue" type="ifc:IfcPropertyEnumeratedValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
<xs:complexType name="IfcPropertyEnumeratedValue">
<xs:complexContent>
<xs:extension base="ifc:IfcSimpleProperty">
<xs:sequence>
<xs:element name="EnumerationValues">
<xs:complexType>
<xs:group ref="ifc:IfcValue" maxOccurs="unbounded"/>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcValue"/>
<xs:attribute ref="ifc:cType" fixed="list"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
`
EXPRESS Specification
`ENTITY IfcPropertyEnumeratedValue
SUBTYPE OF (IfcSimpleProperty);
EnumerationValues : LIST [1:?] OF IfcValue;
EnumerationReference : OPTIONAL IfcStrippedOptional;
WHERE
WR1 : NOT(EXISTS(EnumerationReference)) OR (SIZEOF(QUERY(temp <* EnumerationValues | temp IN EnumerationReference.EnumerationValues)) = SIZEOF(EnumerationValues));
END_ENTITY;

EXPRESS-G diagram

`

Link to this page