Link to Index Page

  Specification for IfcUtilityResource  

Link to EXPRESS Definition Link to EXPRESS-G Diagram Link to IDL Definition

Schema Semantic Definition

The resource schema IfcUtilityResource deals with general concepts, such as Identification, History, Registry, but also Table. The services provided by classes of this schema will later be referenced from the entire IFC Object Model, by classes in any of its Model Layers (see the IFC Object Model Architecture Guide). The IfcUtilityResource contains specifications for a number of utility object types.

The IfcUtilityResource contains the following concepts:

Identifier

An identifier enables unique identification of IFC object instances. In this release, the scope of uniqueness has been extended to be "globally unique". This means that an IFC object ID will be globally unique across all projects and all software applications. Classes that don’t exist independently (i.e. that are contained by other classes) will not include their own ID. Their uniqueness is provided by the containing class.

Ownership

Each object, relationship and type definition will provide information about its current ownership. Ownership information is the currently "owning" application and the owning (responsible) project team member (actor). In the future, this ownership information can be used for access and change permissions. The specification of access/edit rights are not included in this IFC release.

History

The history of an IFC object is captured as an audit trail of "transactions" is kept. In this release, "transaction" information is limited to capture of the user and application IDs for each modification. The audit trail has an integer length which is set to 1 for this release. Therefore, in this release, you will simply be able to find who and which application made the last modification to an object.

Registry

The Project Registry for this release of IFC allows registry and reference to project participants, both users (actors) and applications. The first time any project participant or application joins a project, they must register themselves in the Project Registry. After this, their registration number is used for identification.

Table

IfcTable is general purpose data structure that may be used for any two dimensional matrix of information values. It provides for recording information in rows and columns, where the information type is identified for each column. Currently, IfcTable does not allow for specification of any mathematical operations on the data recorded in table cells (i.e. it does not act in the manner of a spreadsheet).


Type IfcGloballyUniqueId

Link to EXPRESS Definition

Type Semantic Definition

Definition from IAI: The IfcGloballyUniqueId captures a globally unique identifier across the scope of the entire software world (objects created by all applications). In this IFC release, the IfcGloballyUniqueId is defined as a 20 Character long STRING.

NOTE: The following convention to generate IfcGloballyUniqueId shall apply for this release of IFC. The GUID string is 20 characters long using an algorithm to code the 128 bits of the GUID obtained with the Microsoft Foundation Class function "CoCreateGuid" into a number system with base 85. The characters used for the encoding are:

"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&^|*+,-./:;<=>?~`@_";

The index in this string determines the "value" for each character (0-84), e.g. "A" has a value of 10, "@" has a value of 83. Please note: the characters are case-sensitive!

NOTE This type is new in this release of IFC. Use of the "CoCreateGuid" function is obviously limited to the Microsoft operating systems. Future Releases of IFC will support a platform independent definition of GUID. Sample code that performs conversion and generation of GUIDs for other platforms is available.

ISSUE Change above made for IFC Release 1.5.1.


Class IfcAuditTrail

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: The IfcAuditTrail maintains a limited history for an object instance. Currently, this history is limited to information about object creation, deletion and last modification (i.e. a one-step history). The mechanism for a real audit trail is included but is limited to 1 modification "transaction" in this release. This "transactions" list can be expanded in future IFC releases. The deletion of an object is also captured as an object will most likely be marked as deleted, but not actually removed from the model file. This will facilitate "roll back" functionality in future releases of IFC.

NOTE This class is a revised version of the IFC Release 1.0 class IfcExtendedId.

ISSUE: See issue I-004, I-215, I-216 for changes made in IFC Release 1.5.

Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition 

Data or Relation Type

Min

Max

Default

 

CreationDate 

Date on which object was created

IfcTimeStamp

see type

see type

n/a

Opt 

DeletionDate 

Date this object was deleted from the model - NOTE: an deleted Object still needs to be communicated.

IfcTimeStamp

see type

see type

n/a

 

CreatingUser 

End User who created this object. The integer defines a pointer into the IfcProjectTeamRegistry.

INTEGER

1

see type

1

Opt 

DeletingUser 

End User who deleted this object from the model. The integer defines a pointer into the IfcProjectTeamRegistry.

INTEGER

1

see type

1

 

CreatingApplication  

Application used to create this object. The integer defines a pointer into the IfcProjectAppRegistry.

INTEGER

1

see type

1

Opt 

DeletingApplication 

Application that deleted this object from the model. The integer defines a pointer into the IfcProjectAppRegistry.

INTEGER

1

see type

1

 

AuditTrailLength 

Length of the Transaction list, specifies the number of transactions kept in the IFC file for this object.

INTEGER

0

1

0

 

Transactions 

Stored last transactions that affected the object. Currently only the last transaction is kept

LIST [0:?] OF IfcTransaction

0

AuditTrailLength

0

INV 

ToOwnerHistory 

Reference to the IfcOwnerHistory in which the IfcAuditTrail is defined (and contained).

IfcOwnerHistory

see type

see type

n/a

Formal Propositions:

WR1 

For this IFC Release the number of captured transactions is limited to one. EXPRESS: AuditTrailLength <= 1

Interface Definitions


Class IfcOwnerHistory

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: The IfcOwnerHistory defines history and identification related information for an object. Only the IfcGloballyUniqueId is excluded. In order to provide fast access it is directly attached to all independent objects, relationships and properties.

The IfcOwnerHistory is used to identify both the owning application and user for the associated (subject) object instance. In addition the "OwnerDescriptor", provided by the owning user, is recorded as it may include some significant meaning to users. This object also contains an audit trail of modification transactions.

NOTE This class is a revised version of the IFC Release 1.0 class IfcOwnerId.

ISSUE: See issues I-001, I-002 and I-003 for changes made for IFC Release 1.5.

Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition 

Data or Relation Type

Min

Max

Default

 

OwningActor 

Reference to the end user which currently "owns" this object. Note that IFC includes the concept of ownership transfer from one user to another and therefore distinguishes between the Owning User and Creating User. The Owning Actor is defined by an Integer that points into the Array of the IfcProjectTeamRegistry.

INTEGER

1

see type

1

 

OwningApplication 

Application which currently "Owns" this object on behalf of the owning user, who uses this application. Note that IFC includes the concept of ownership transfer from one app to another and therefore distinguishes between the Owning Application and Creating Application. The Owning Application is defined by an Integer that points into the Array of the IfcProjectAppRegistry.

INTEGER

1

see type

1

Opt 

ApplicationId 

Internal ID used by the Owning Application.

STRING

see type

see type

NIL

Opt 

OwnerDescriptor 

User or application descriptor for this object. This might be the user descriptor like "Molly's Room", or description of intended use like "Barge board for south facade siding", etc.

STRING

see type

see type

NIL

Opt 

AuditTrail 

Reference to the history related information, if given, it shows the latest transaction that leaded to modifications at the object.

IfcAuditTrail

see type

see type

NIL

Formal Propositions:

none 

 

Interface Definitions


Class IfcProjectAppRegistry

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: The IfcProjectAppRegistry defines a registry where IFC compliant application can register their participation in a project. A single instance of this registry will be associated with an IfcProject. Each application must register when first used in the project. When registered, the application is assigned a unique index number which is visible to all other applications and end users. This application index is used by IfcOwnerHistory and IfcAuditTrail as pointer into this Registry.

NOTE: This class is new in this IFC Release 1.5.

ISSUE: See issue I-003 for changes made in IFC Release 1.5.

Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition 

Data or Relation Type

Min

Max

Default

 

RegisteredApps 

Applications used within the current project, which have registered themselves within the application registry. The list index of the application will uniquely identify the application within the project.

List[0:?] IfcRegisteredApplication

see type

see type

NIL

Informal Propositions:

IP1 

Each IfcRegisteredApplication in the list must be unique

Interface Definitions


Class IfcProjectTeamRegistry

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: The IfcProjectTeamRegistry defines a registry where users within an IFC project can register their participation in a project. A single instance of this registry will be associated with an IfcProject. Each user must register when first participating in a project. When registered, the user is assigned a unique index number into the registry. This user index is used by IfcOwnerHistory and IfcAuditTrail as pointer into this Registry.

NOTE: This class is new in IFC Release 1.5.

ISSUE: See issue I-001 for the changes made in IFC Release 1.5.

Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition 

Data or Relation Type

Min

Max

Default

 

RegisteredActors 

Actors involved in the current project, which have registered themselves within the Team Registry. The list index of the actor will uniquely identify the actor within the project.

List[0:?] IfcActorSelect

see type

see type

NIL

Informal Propositions:

IP1 

Each IfcActorSelect in the list must be unique

Interface Definitions


Class IfcRegisteredApplication

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: An IfcRegisteredApplication object describes an application that has been certified as conformant to one or more releases of IFC. To achieve this status, the application developer must be a member of the International Alliance of Interoperability and must successfully complete the IAI certification process. Each certified application will be assigned a unique 16 character identifier as a result of being certified.

NOTE: This class is new in IFC Release 1.5.

ISSUE: See issue I-003 for the changes made in IFC Release 1.5.

Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition 

Data or Relation Type

Min 

Max 

Default 

 

ApplicationIdentifier 

short, max. 16 character long identifying short name for the application, being registered and known to the IAI conformance program.

STRING (16)

see type

see type

n/a

 

ApplicationFullName 

full name of the application.

STRING (255)

see type

see type

n/a

 

ApplicationDeveloper 

name of the application developer, being requested to be member of the IAI.

IfcActorSelect

see type

see type

n/a

INV 

RegisteredBy 

relationship to the application registry, in which the application is registered.

IfcProjectAppRegistry

see type

see type

n/a

Formal Propositions:

none 

 

Interface Definitions


Class IfcTransaction

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: An IfcTransaction object captures the date, the application and the user who modifies the associated (host) object. Details about the actual object modification is not captured.

NOTE This class is new in IFC Release 1.5.

ISSUE: See issue I-004 for the changes made in IFC Release 1.5.

Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition 

Data or Relation Type

Min 

Max 

Default 

 

TransactionDate 

Date and Time at which the transaction occurred.

IfcTimeStamp

see type

see type

n/a

 

TransactingUser 

User who carried out the transaction.

INTEGER

1

see type

1

 

TransactingApplication 

Application being used to carry out the transaction.

INTEGER

1

see type

1

INV 

ToAuditTrail 

Reference to the IfcAuditTrail in which context the transaction is captured

IfcAuditTrail

see type

see type

n/a

Formal Propositions:

none 

 

Interface Definitions


Class IfcTable

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: An object which allows information to be documented in the form of rows and columns.

Limitation: In this release of IFC the Rows of an IfcTable object are constrained to have the same number of Cells. The first Row of the Table provides the number of Cells. All other Rows are forced to include the same number of Cells. This is enforced by the WR2.

NOTE: New class in IFC Release 1.5.

ISSUE: See issues I-218, I-219, I-220, I-221, I-222, for changes made in IFC Release 1.5.
See issue I-319, for changes made in IFC Release 1.5.1.

Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition 

Data or Relation Type

Min

Max

Default

 

ProjectId 

Assignment of an unique identifier within the project that allows to ensure uniqueness in a project context.

IfcGloballyUniqueId

see type

see type

n/a

 

Name 

A unique name which is intended to describe the usage of the Table.

STRING

see type

see type

n/a

 

Rows 

Reference to information content of rows.

List[1:?] IfcTableRow

1

N

2

DER 

NumberOfCellsInRow 

The number of cells in each row, this complies to the number of columns in a table. See WR2 that ensures that each row has the same number of cells. The actual value is derived from the first member of the Rows list.

INTEGER

1

see type

2

DER 

NumberOfHeadings 

The number of headings in a table. This is restricted by WR3 to max. one.

INTEGER

0

1

1

DER 

NumberOfDataRows 

The number of rows in a table that contains data, i.e. total number of rows minus number of heading rows in table 

INTEGER

1

see type

2

Formal Propositions:

WR2 

Ensures that each row defines the same number of cells. This restricts the available table styles in IFC Release 1.5. The rule compares whether all other rows of the IfcTable have the same number of cells as the first row. EXPRESS = SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells))) = 0

WR3 

Ensures that there is one heading row as maximum. This restricts the allowed number of heading rows for this release. This limitation may be removed in future releases. EXPRESS = 0 <= NumberOfHeadings <= 1 }

Interface Definitions


Class IfcTableRow

Link to EXPRESS Definition

Class Semantic Definition

Definition from IAI: The information content of a row within an IfcTable (other than the heading row). A table contains a number of rows which record information about an instance of the information recorded within that table.

Limitation: There is the restriction within this release of IFC. All IfcTableRow objects referenced by an IfcTable shall have the same number of Row Cells. The actual number of Cells shall be taken from the number of cells of the first IfcTableRow for that table. The number of Cells is calculated by the derived attribute NumberOfCellsInRow in the associated IfcTable.

NOTE: New class in IFC Release 1.5

ISSUE: See issues I-153, I-218, I-219, I-220, I-221, I-222 for changes made in IFC Release 1.5.
See issue I-319, for changes made in IFC Release 1.5.1.

 


Attribute and Relationship Definitions

Attributes and Relationships:

 

Attribute / Relation

Definition

Data or Relation Type

Min 

Max 

Default 

 

RowCells 

The value of information by row and column using the units defined. 

NOTE - The row value identifies both the actual value and the units in which it is recorded. Each cell (unique row and column) may have a different value AND different units. If the row is a heading row, then the row values are strings defined by the IfcString.

List[1:?] IfcMeasureValue

1

see type

2

 

IsHeading 

Flag which identifies if the row is a heading row or a row which contains row values. 

NOTE - If the row is a heading, the flag takes the value = TRUE.

BOOLEAN

see type

see type

FALSE

INV 

OfTable 

Reference to the IfcTable, in which the IfcTableRow is defined (or contained)

IfcTable

see type

see type

n/a

Formal Propositions:

none 

 

Interface Definitions