Model Space
Overview
Provides the information concerning a space within a building model.
A space is defined as representing an area or volume bounded actually or theoretically. In IFC, spaces are further defined as areas or volumes that provide for certain functions within a building. However, a space may equally be defined as providing for functions outside a building.
The information presented in this functional part is sufficient for the concept of modelling spaces within the exchange of a basic building model. This information includes:
- Specification of space (room) name
This should be the unique name (or space number) for the space (equivalent to the space number identifier from a plan). Note that international standards exist for room naming and it is recommended that these be used if possible - Specification of space (room) description
This can be used for any further qualifying information about a space - Specification of an extended (long) name for the space (room).
This can be used to capture the full name of the space. It is often used in addition to the name.
For instance, if a number is assigned to the room, then the descriptive name is exchanged as a Long Name - Specification of the space type
This usually identifies the functional category of the space (e.g. bedroom, kitchen, office etc.) - Dimensional information about the space
This may be given to enable the creation of a shape representation if the space shape cannot otherwise be found from the building elements (wall, roof etc.) bounding it. This would be particularly the case during early stages of design where the space needs to be established but the building itself is not broken down into parts. Overall space shape for external spaces should also be provided for communication with geographic information systems. The form of shape representation used for a shape may differ at various stages of a building project and these are specifically identified within exchange requirements. Particular forms of shape representation may include- 2D footprint representation with additional height information given as a quantity
- 3D body representation using swept solids
- 3D body representation using clipping of solids
- Specification of whether the space is a complex of several spaces, an elemental (single) space or a part of a space.
- Where the space is a 'complex', identification of the elemental spaces that are nested into the complex.
- Where the space is a 'part', identification of the space into which the part is nested
- It should be noted that the 'part' breakdown of a space may give rise to overlapping shapes. Therefore, the overall shape of a space should not be derived by adding together the shapes of parts.
- The level of flooring of the space relative to the reference elevation of the building
This should be used where the ground surface is sloping or if there are several levels within the space. - Identification of whether the space is internal or external
- Mandatory common properties of a space required to identify:
- Reference to the type of space from a defined list of types for the project.
- Occupancy type from classifications given in the relevant local code and number of occupants anticipated. Occupancies may be given according to the form of activity of the occupant within the space.
- Indication of accessibility to a space for the public and disabled persons.
Results
Model of space occurrence(s) including shape representation and other basic information
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Specify principal space attributes For the present, a space is directly specified as an occurrence within IFC. It does not have a defining type entity. |
||||
|
IfcSpace.GlobalId::IfcGloballyUniqueId | |||
|
IfcSpace.OwnerHistory::fp_apply_owner_history | |||
|
IfcSpace.Name::IfcLabel | |||
|
IfcSpace.Description::IfcText | |||
|
IfcSpace.LongName::IfcLabel | |||
|
IfcSpace.ObjectType::IfcLabel | |||
|
IfcSpace.ElevationWithFlooring::IfcLengthMeasure | |||
|
IfcSpace.InteriorOrExteriorSpace ? IfcInternalOrExternalEnum | |||
For spaces that are to have one or more defined shape representations.
|
||||
|
IfcSpace.ObjectPlacement::fp_place_object | |||
| Define each shape representation of the space to be used | IfcSpce.Representation::fp_represent_product | |||
| For spaces that are to participate in a composition
Note that spaces may be defined as being parts of other spaces or as a complex that configures several other spaces. Where a space is part of or configures other space(s), then the following must be asserted: |
||||
|
IfcSpace.CompositionType::IfcElementCompositionEnum | |||
|
fp_nest[space] | |||
|
fp_nest[space] | |||
| Identify elements in the space | ||||
|
fp_contains_in_spatial_structure[ space, Unknown macro: {elements} ] |
|||
| Set required values in Pset_SpaceCommon | ||||
|
Pset_SpaceCommon.Reference | |||
|
Pset_SpaceCommon.OccupancyType | |||
|
Pset_SpaceCommon.OccupancyNumber | |||
| Define the property set for the window occurrence | fp_define_by_properties | |||
| Set additional quantities as deemed appropriate | fp_apply_quantity |
IFC Entities Required
- IfcElement
- IfcObject
- IfcProduct
- IfcRoot
- IfcSpace
- IfcSpatialStructureElement
IFC Datatypes Required
- IfcElementCompositionEnum
- IfcGloballyUniqueId
- IfcInternalOrExternalEnum
- IfcLabel
- IfcLengthMeasure
- IfcText
IFC Functions Required
- -
IFC Property Sets Required
- Pset_SpaceCommon
IDM Functional Parts Required
- fp_address
- fp_aggregates
- fp_apply_owner_history
- fp_apply_quantity
- fp_contains_in_spatial_structure
- fp_define_by_properties
- fp_place_object
- fp_represent_product
EXPRESS Schema
SCHEMA FP_MODEL_SPACE;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcLengthMeasure = REAL;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcElementCompositionEnum = ENUMERATION OF
(COMPLEX,
ELEMENT,
PARTIAL);
END_TYPE;
TYPE IfcInternalOrExternalEnum = ENUMERATION OF
(INTERNAL,
EXTERNAL,
NOTDEFINED);
END_TYPE;
ENTITY IfcProduct
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
ObjectPlacement : OPTIONAL fp_place_object;
Representation : OPTIONAL fp_represent_product;
WHERE
WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
OR (EXISTS(Representation) AND
(NOT('IFC2X2_FINAL.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
OR (NOT(EXISTS(Representation)));
END_ENTITY;
ENTITY IfcObject
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRoot);
ObjectType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE;
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcSpatialStructureElement
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcProduct);
LongName : OPTIONAL IfcLabel;
CompositionType : IfcElementCompositionEnum;
WHERE
WR41 : (HIINDEX(SELF\IfcObject.Decomposes) = 1)
AND
('IFC2X2_FINAL.IFCRELAGGREGATES' IN TYPEOF(SELF\IfcObject.Decomposes[1]))
AND
(('IFC2X2_FINAL.IFCPROJECT' IN TYPEOF (SELF\IfcObject.Decomposes[1].RelatingObject)) OR
('IFC2X2_FINAL.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF (SELF\IfcObject.Decomposes[1].RelatingObject))
);
END_ENTITY;
ENTITY IfcSpace
SUBTYPE OF(IfcSpatialStructureElement);
InteriorOrExteriorspace : IfcInternalOrExternalEnum;
ElevationWithFlooring : OPTIONAL IfcLengthMeasure;
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
ENTITY fp_aggregates;
END_ENTITY;
ENTITY fp_apply_quantity;
END_ENTITY;
ENTITY fp_contains_in_spatial_structure;
END_ENTITY;
ENTITY fp_define_by_properties;
END_ENTITY;
ENTITY fp_place_object;
END_ENTITY;
ENTITY fp_represent_product;
END_ENTITY;
END_SCHEMA;
Examples of Modeling Spaces
Example 1: Modeling a general space
In this example, a bedroom space is considered. The bedroom is defined as being a type of living area whose reference is defined as 'bedroom' within a common space property set and whose occupancy type is set to 'sleeping'. The space name is set to W-001 which is used for local identification and it has a long name of 'master bedroom' which is how it is considered in German naming practice (shown in the included space as 'Elternschlafzimmer'). The space is considered to be a whole room and therefore its composition type is set to being an element. It is an internal space which is located at the same level as the building datum which is referred to as an elevation of 0.0.
Some additional properties are defined for the space including the fact that it is not publicly accessible (whilst this might be obvious for a bedroom, it does need to be identified as a property) but it is handicap accessible meaning that persons normally using a wheelchair would be able to use the space. The space is considered to be naturally ventilated at a rate of 2 air changes per hour. The space is not concealed and it has a net planned area of 58.29 square metres; the gross planned area is not asserted.
#2=IFCOWNERHISTORY(...);
/* defining the space */
#901=IFCSPACE('abcdefghijklmnopqrst901',#2,'W-001',$,'Living Area',#1284,#1300,'Master Bedroom',.ELEMENT.,.INTERNAL.,0.);
/* relating the space and the property set */
#911=IFCRELDEFINESBYPROPERTIES('abcdefghijklmnopqrst911',#2,$,$,(#901),#921);
/* definition of occurrence property set */
#921=IFCPROPERTYSET('abcdefghijklmnopqrst921',#2,'Pset_SpaceCommon',$,(#931,#932,#933,#934,#935,#936,#937,#938,#939,#940,#941));
/* definition of common properties for a space */
/* note that the optional values given in #938 and #940 relate to IFC 2x3 */
/* - a value must be asserted for prior IFC releases - */
#931=IFCPROPERTYSINGLEVALUE('Reference',$,'Bedroom',$);
#932=IFCPROPERTYSINGLEVALUE('OccupancyType',$,'Sleeping',$);
#933=IFCPROPERTYSINGLEVALUE('OccupancyNumber',$,2,$);
#934=IFCPROPERTYSINGLEVALUE('PubliclyAccessible',$,.FALSE.,$);
#935=IFCPROPERTYSINGLEVALUE('HandicapAccessible',$,.TRUE.,$);
#936=IFCPROPERTYSINGLEVALUE('NaturalVentilation',$,.TRUE.,$);
#937=IFCPROPERTYSINGLEVALUE('NaturalVentilationRate',$,2,$);
#938=IFCPROPERTYSINGLEVALUE('MechanicalVentilationRate',$,$,$);
#939=IFCPROPERTYSINGLEVALUE('Concealed',$,.FALSE.,$);
#940=IFCPROPERTYSINGLEVALUE('GrossPlannedArea',$,$,$);
#941=IFCPROPERTYSINGLEVALUE('NetPlannedArea',$,$,$);
/* placement and representation are not elaborated in this example */
#1284=IFCLOCALPLACEMENT( ... );
#1300=IFCPRODUCTREPRESENTATION ( ... );