Place Object
Overview
Provides guidance on how objects are placed using local placement.
Objects may be placed relative to other objects (i.e. within the local coordinate system of another object). This is achieved by asserting the 'PlacementRelTo' attribute of the local placement object.
Where the object is not specifically placed relative to another object, it is considered as being placed absolutely within the world coordinate system.
Results
Object placement is defined.
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| The object to be placed will be a subtype of IfcProduct.
In this functional part, it is assumed that the owner history of the product is applied. It is further assumed that product naming and determination of the object type has been established. |
IfcProduct Including all local and inherited attributes fp_apply_owner_history |
|||
| Assert that the object is to be placed | IfcProduct.ObjectPlacement::IfcLocalPlacement | |||
| Where an object is placed relative to another object, the relative placement attribute is asserted.
This attribute is not asserted where the object is to be placed within the world coordinate system. |
IfcLocalPlacement.PlacementRelTo | |||
| Place the object.
Placement is either 2 dimensional or 3 dimensional. The appropriate parameter should be used in conjunction with the functional part name. |
fp_place (2D) fp_place (3D) |
IFC Entities Required
- IfcLocalPlacement
- IfcObject
- IfcObjectPlacement
- IfcProduct
- IfcRoot
IFC Datatypes Required
- IfcGloballyUniqueId
- IfcLabel
- IfcText
IFC Functions Required
- -
IDM Functional Parts Required
- fp_apply_owner_history
- fp_place
EXPRESS Schema
SCHEMA FP_PLACE_OBJECT;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
ENTITY IfcProduct
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
ObjectPlacement : OPTIONAL IfcObjectPlacement;
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_appy_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY fp_appy_owner_history;
END_ENTITY;
ENTITY IfcObjectPlacement
ABSTRACT SUPERTYPE;
INVERSE
ReferencedByPlacements : SET OF IfcLocalPlacement FOR PlacementRelTo;
END_ENTITY;
ENTITY IfcLocalPlacement
SUBTYPE OF(IfcObjectPlacement);
PlacementRelTo : OPTIONAL IfcObjectPlacement;
RelativePlacement : fp_place;
WHERE
WR21 : IfcCorrectLocalPlacement(RelativePlacement, PlacementRelTo);
END_ENTITY;
ENTITY fp_place;
(* --- referenced either fp_place (2D) or fp_place (3D) --- *)
END_ENTITY;
END_SCHEMA;