#### 5.1.3.9 IfcProject

| Projet
| Projekt

IfcProject indicates the undertaking of some design, engineering, construction, or maintenance activities leading towards a product. The project establishes the context for information to be exchanged or shared, and it may represent a construction project but does not have to. The IfcProject's main purpose in an exchange structure is to provide the root instance and the context for all other information items included.

The context provided by the IfcProject includes:

- the default units
- the geometric representation context for exchange structures including shape representations
  - the world coordinate system
  - the coordinate space dimension
  - the precision used within the geometric representations, and
  - optionally the indication of the true north relative to the world coordinate system

> HISTORY New entity in IFC1.0

> IFC4 CHANGE The attributes RepresentationContexts and UnitsInContext are made optional and are promoted to supertype IfcContext.

Informal Propositions:

1. There shall only be one project within the exchange context. This is enforced by the global rule IfcSingleProjectInstance.

## Construction Operations

All IFC files must contain a single IfcProject instance that provides global context information including default units, and provides a directory of objects organized within the project.

Instance diagram

Identity

The Identity concept applies to this entity.

Exchange |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Import | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R
Export | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R

Revision Control

The Revision Control concept applies to this entity.

Exchange |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Import | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O
Export | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O | O

External Data Constraints

The External Data Constraints concept applies to this entity as shown in Table 3.

Table | Name | Reference | Format | Color
--- | --- | --- | --- | ---
Facility | Name | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcBuilding.Name | Key | #FFFF99
Facility | CreatedBy | IfcProject.OwnerHistory\IfcOwnerHistory.OwningUser\IfcPersonAndOrganization.ThePerson\IfcPerson.Identification |  | #FFCC99
Facility | CreatedOn | IfcProject.OwnerHistory\IfcOwnerHistory.CreationDate |  | #FFFF99
Facility | Category | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcBuilding.HasAssociations[*]\IfcRelAssociatesClassification.RelatingClassification\IfcClassificationReference.Identification |  | #FFCC99
Facility | ProjectName | IfcProject.Name |  | #FFFF99
Facility | SiteName | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.Name |  | #FFFF99
Facility | LinearUnits | IfcProject.UnitsInContext\IfcUnitAssignment.Units['LENGTHUNIT'] |  | #FFCC99
Facility | AreaUnits | IfcProject.UnitsInContext\IfcUnitAssignment.Units['AREAUNIT'] |  | #FFCC99
Facility | VolumeUnits | IfcProject.UnitsInContext\IfcUnitAssignment.Units['VOLUMEUNIT'] |  | #FFCC99
Facility | CurrencyUnit | IfcProject.UnitsInContext\IfcUnitAssignment.Units[*]\IfcMonetaryUnit.Currency |  | #FFCC99
Facility | AreaMeasurement | IfcProject.LongName |  | #FFFF99
Facility | ExternalSystem | IfcProject.OwnerHistory\IfcOwnerHistory.OwningApplication\IfcApplication.ApplicationIdentifier |  | #CC99FF
Facility | ExternalProjectObject | IfcProject\ |  | #CC99FF
Facility | ExternalProjectIdentifier | IfcProject.GlobalId |  | #CC99FF
Facility | ExternalSiteObject | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\ |  | #CC99FF
Facility | ExternalSiteIdentifier | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.GlobalId |  | #CC99FF
Facility | ExternalFacilityObject | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\ |  | #CC99FF
Facility | ExternalFacilityIdentifier | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcBuilding.GlobalId |  | #CC99FF
Facility | Description | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcBuilding.Description |  | #CCFFCC
Facility | ProjectDescription | IfcProject.Description |  | #CCFFCC
Facility | SiteDescription | IfcProject.IsDecomposedBy[*]\IfcRelAggregates.RelatedObjects[*]\IfcSite.Description |  | #CCFFCC
Facility | Phase | IfcProject.Phase |  | #CCFFCC
Table 3 — IfcProject External Data Constraints

Exchange |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Import | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R
Export | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R

Conversion Units

The Conversion Units concept applies to this entity as shown in Table 4.

UnitType | Name | ConversionType | ConversionFactor | BaseUnitPrefix | BaseUnitName | ConversionOffset
--- | --- | --- | --- | --- | --- | ---
LENGTHUNIT | inch |  |  |  |  |
AREAUNIT | square inch |  |  |  |  |
VOLUMEUNIT | cubic inch |  |  |  |  |
MASSUNIT | pound |  |  |  |  |
Table 4 — IfcProject Conversion Units

Project Units define the units used in the data exchange. Units can be translated during export and import; that is, the originating model, data exchange and resulting model may all have different units.

The following units must be supported in all exchange scenarios:

- Length
- Area
- Volume
- Angle
- Currency

Additional units must be supported if they are needed in the context of an exchange scenario. Each measure value of the same type in the data exchange uses the same unit. When an application imports data, the following behavior relating to units is allowed:

- Importing units as they are, providing the units match the units used by the importing application.
- Translating to units of the same unit system, e.g. millimeters to meters.
- Translating between unit systems, e.g. from millimeter to inch. The user must be prompted to accept the translation or cancel the import.
- Informing the user about unsupported units and cancelling the import.

The following behavior is not allowed:

- Importing units of a supported unit system without translation, if the units in the receiving application are not set to match the units used in the exchange, e.g. importing millimeters as meters.
- Importing units of an unsupported unit system without translation, e.g. importing millimeters as inches without translation.
- Mixing units of different unit systems is not allowed. Importing applications are required to detect invalid unit configurations, notify the user and cancel the import.
- Additional restrictions have been imposed on units, with the requirement that angles must be measured in degrees (as opposed to radians).

Exchange |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Import | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R
Export | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R

Project Declaration

The Project Declaration concept applies to this entity as shown in Table 5.

Type | Description
--- | ---
IfcActor | A project may declare zero, one, or more actors participating within the current project.
IfcActionRequest | A project may declare zero, one, or more action requests indicating directives within the current project.
IfcSystem | A project may declare zero, one, or more systems.
IfcZone | A project may declare zero, one, or more zones.
IfcTask | A project may declare zero, one, or more tasks.
IfcConstructionResource | A project may declare zero, one, or more resources.
IfcTypeProduct | A project may declare zero, one, or more element types or space types.
IfcConstructionResourceType | A project may declare zero, one, or more resource types.
Table 5 — IfcProject Project Declaration

Exchange |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Import | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R
Export | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R | R

XSD Specification:

<xs:element name="IfcProject" type="ifc:IfcProject" substitutionGroup="ifc:IfcContext" nillable="true"/>
<xs:complexType name="IfcProject">
<xs:complexContent>
<xs:extension base="ifc:IfcContext"/>
</xs:complexContent>
</xs:complexType>

EXPRESS Specification:

ENTITY IfcProject

| SUBTYPE OF (IfcContext);

| WHERE

HasName | : | EXISTS(SELF\IfcRoot.Name);
CorrectContext | : | NOT(EXISTS(SELF\IfcContext.RepresentationContexts)) OR (SIZEOF(QUERY(Temp <* SELF\IfcContext.RepresentationContexts | 'IFCREPRESENTATIONRESOURCE.IFCGEOMETRICREPRESENTATIONSUBCONTEXT' IN TYPEOF(Temp) )) = 0);
NoDecomposition | : | SIZEOF(SELF\IfcObjectDefinition.Decomposes) = 0;
HasOwnerHistory | : | EXISTS(SELF\IfcRoot.OwnerHistory);

END_ENTITY;

Formal Propositions:

HasName | : | The Name attribute has to be provided for IfcProject. It is the short name for the project.
CorrectContext | : | If a RepresentationContexts relation is provided then there shall be no instance of IfcGeometricRepresentationSubContext directly included in the set of RepresentationContexts.
NoDecomposition | : | The IfcProject represents the root of the any decomposition tree. It shall therefore not be used to decompose any other object definition.
HasOwnerHistory | : | The OwnerHistory attribute has to be provided for IfcProject. It provides the minimum of owner information for the project data set and the last change action, that applied to the whole data set. NOTE Each individual data item, that derives from IfcRoot may have an individual OwnerHistory. It then overrides the common ownership and chance action information provided at the single IfcProject instance in an IFC data set. IFC4 CHANGE New where rule.

Inheritance Graph:

ENTITY IfcProject

| ENTITY IfcRoot

GlobalId | : | IfcGloballyUniqueId;
OwnerHistory | : | OPTIONAL IfcOwnerHistory;
Name | : | OPTIONAL IfcLabel;
Description | : | OPTIONAL IfcText;

| ENTITY IfcObjectDefinition

| INVERSE

HasAssignments | : | SET OF IfcRelAssigns FOR RelatedObjects;
HasContext | : | SET [0:1] OF IfcRelDeclares FOR RelatedDefinitions;
IsDecomposedBy | : | SET OF IfcRelAggregates FOR RelatingObject;
Decomposes | : | SET [0:1] OF IfcRelAggregates FOR RelatedObjects;
HasAssociations | : | SET OF IfcRelAssociates FOR RelatedObjects;

| ENTITY IfcContext

ObjectType | : | OPTIONAL IfcStrippedOptional;
LongName | : | OPTIONAL IfcStrippedOptional;
Phase | : | OPTIONAL IfcStrippedOptional;
RepresentationContexts | : | OPTIONAL SET [1:?] OF IfcStrippedOptional;
UnitsInContext | : | OPTIONAL IfcUnitAssignment;

| INVERSE

IsDefinedBy | : | SET [0:?] OF IfcRelDefinesByProperties FOR RelatedObjects;
Declares | : | SET OF IfcRelDeclares FOR RelatingContext;

| ENTITY IfcProject

END_ENTITY;

Link to this page