Contains in Spatial Structure
Overview
Describes a containing relationship a product is contained within a spatial structure element such as a site, building, building storey or space.
Containment within a spatial structure can be widely used in the IFC model to identify the location of a product in easily understood human terms. This is because it relates to a space which will have a known name/identity (and which may be placed in the context of a parent space through aggregation) rather than being simply a set of coordinates that have no rational counterpart in the human experience.
The aggregation relationship is described at a high level in the IFC model between occurrences of IfcProduct contained within a spatial structure. Practically, the relationship will be between instances of subtypes of IfcProduct and these inherit the relationship.
Results
Declares the existence of a relationship between one or more products and the spatial structure in which they are contained.
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Determine the containing spatial structure and the entities contained within it | ||||
|
IfcSpatialStructureElement <subtypes> | |||
|
IfcProduct < subtypes> | |||
| Define the relationship | ||||
|
IfcRelContainedInSpatialStructure.RelatingStructure::IfcSpatialStructureElement <subtypes> | |||
|
IfcRelContainedInSpatialStructure.RelatedElements::IfcProduct <subtypes> | |||
|
GlobalId::IfcGloballyUniqueId | |||
|
IfcRelContainedInSpatialStructure.OwnerHistory::fp_apply_owner_history | |||
|
IfcRelContainedInSpatialStructure.Name::IfcLabel | |||
|
IfcRelContainedInSpatialStructure.Description::IfcText |
IFC Entities Required
- IfcObject
- IfcObjectDefinition
- IfcProduct
- IfcRelationship
- IfcRelConnects
- IfcRelContainedInSpatialStructure
- IfcRoot
- IfcSpatialStructureElement
IFC Datatypes Required
- IfcElementCompositionEnum
- IfcGloballyIniqueId
- IfcLabel
- IfcText
IFC Functions Required
- -
IDM Functional Parts Required
- fp_apply_owner_history
- fp_place_object (not applied in the context of this functional part)
- fp_represent_product (not applied in the context of this functional part)
EXPRESS-G
EXPRESS Schema
SCHEMA FP_CONTAINS_IN_SPATIAL_STRUCTURE;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
TYPE IfcElementCompositionEnum = ENUMERATION OF
(COMPLEX,
ELEMENT,
PARTIAL);
END_TYPE;
ENTITY IfcProduct
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
ObjectPlacement : OPTIONAL fp_place_object;
Representation : OPTIONAL fp_represent_product;
(*
? ? WHERE rule on IfcProduct not applicable in this context
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 IfcObjectDefinition
SUBTYPE OF(IfcRoot);
END_ENTITY;
ENTITY IfcObject
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObjectDefinition);
ObjectType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE OF (ONEOF(IfcRelationship, IfcObjectDefinition));
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY IfcRelationship
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRoot);
END_ENTITY;
ENTITY IfcRelConnects
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRelationship);
END_ENTITY;
ENTITY IfcRelContainedInSpatialStructure
SUBTYPE OF(IfcRelConnects);
RelatedElements : SET [1:?] OF IfcProduct;
RelatingStructure : IfcSpatialStructureElement;
WHERE
WR31 : SIZEOF(QUERY(temp <* RelatedElements | 'IFC2X2_FINAL.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF(temp))) = 0;
END_ENTITY;
ENTITY IfcSpatialStructureElement
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcProduct);
LongName : OPTIONAL IfcLabel;
CompositionType : IfcElementCompositionEnum;
INVERSE
ContainsElements : SET OF IfcRelContainedInSpatialStructure FOR RelatingStructure;
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 fp_apply_owner_history;
END_ENTITY;
ENTITY fp_place_object;
END_ENTITY;
ENTITY fp_represent_product;
END_ENTITY;
END_SCHEMA;