IFC projects and contexts

IFC data is structured in a hierarchy. This hierarchy must have a starting point. In IFC4, there are two special IFC classes which can contain the rest of the IFC data:

  • IfcProject - this is the most common “container” of IFC data, used to store information specific to a particular project
  • IfcProjectLibrary - this can store BIM data that is project agnostic, to be reused between multiple projects

Both of these classes inherit from the IfcContext IFC class. For this reason, they can also be known as the context of the IFC data. All the rest of the IFC data, such as IfcBuilding, or IfcWall, and so on, relate back to this starting context.

Both IfcProject and IfcProjectLibrary have a series of attributes which can be stored with it.

AttributeRequiredDescription
GlobalIdYesA unique identifier of the project, generated by a computer. This is usually created automatically by the BIM authoring tool.
OwnerHistoryThis special attribute can store names, dates, organisations, software vendor, and contact details of people who have started the project. This is usually the client. This is usually created automatically by the BIM authoring tool.
NameRecommendedThis will be the project code name. Many projects have a short code, such as “42FOO”, as well as a longer name, such as “42 Foo Street, Residential Tower B”. This Name attribute should store the short code, “42FOO”.
DescriptionRecommendedThis allows you to write a sentence or so to describe your project or library.
ObjectTypeRecommendedThis can contain some text that categorises your project or library. For example, it might say “Residential” or “Commercial” for projects. It might say “Furniture” or “Mechanical” for a library. There is no standard of what categories are valid or invalid. It is up to you.
LongNameRecommendedThis will be the full name of the project or library. Many projects have a short code, such as “42FOO”, as well as a longer name, such as “42 Foo Street, Residential Tower B”. This LongName attribute should store the full name, “42 Foo Street, Residential Tower B”.
PhaseSome text denoting the current project phase, or life-cycle phase of this project like “A” for phase A / stage 1. Does not necessarily apply to a library. There is no standard of what is considered a valid phase name.
RepresentationContextsOne or moreThis contains a list of possible graphical or geometric representations of the project. For more information see below. This is usually created automatically by the BIM authoring tool.
UnitsInContextThis contains a list of unit definitions that are related to the project. Commonly, a project may define a series of metric units or imperial units, and specify what is the default unit for length, area, volume, weight, time, and currency measurements. It is also possible to define custom units. This is usually created automatically by the BIM authoring tool.