3.4 Correct use of entities


Correct use of entities

The application of IFC also involves the use of the IFC scheme in which the entities (Entitiy) and the types (TypeEnumeration) are two of the most important elements.


By using entities correctly, the software you use knows what kind of object something is. In addition, the entity defines the standard set of properties defined in IFC.

Source applications will largely export and import entities correctly. But there are plenty of opportunities to adjust these settings or model an entity in a different way. Without the correct export settings, this element often becomes a BuildingElementProxy. You can prevent this by exporting in the correct way.

For example, an Entity is:

  • a staircase = IfcStair
  • a floor covering = IfcCovering
  • a ceiling = IfcCovering
  • a fire damper = IfcDamperType


TypeEnumerations are used when you want to make further differentiation within a particular Entity. IFC provides a set of Enumerations per Entity. If an element does not fit within the predefined TypeEnumerations, then you can always use USERDEFINED. To prevent proliferation of new terms, only use this if it is strictly necessary. If you cannot or do not want to make a choice yet, then use NOTDEFINED. This indicates that you are only exporting the Entity (the default TypeEnumeration of an Entity is not always the correct one).

Examples of Entity with TypeEnumerations:

  • floor = IfcSlab.FLOOR
  • floor covering = IfcCovering.FLOORING
  • ceiling covering = IfcCovering.CEILING
  • fire damper = IfcDamperType.FIREDAMPER

The following example illustrates the difference in use of Entity and TypeEnumeration:

  • ceiling: IfcCovering.CEILING
  • Entity: IfcCovering
  • TypeEnumeration: CEILING

Useful: all TypeEnumerations of IfcCovering at a glance:


* This TypeEnumeration is available from version IFC4

TIP 1: The IFC2x3 TC1 standard can be viewed here.
TIP 2: The IFC4 standard can be viewed here.