Class Ifc4x2::IfcProduct¶
Defined in File Ifc4x2.h
Nested Relationships¶
This class is a nested type of Struct Ifc4x2.
Inheritance Relationships¶
Base Type¶
public Ifc4x2::IfcObject
(Class Ifc4x2::IfcObject)
Derived Types¶
public Ifc4x2::IfcAnnotation
(Class Ifc4x2::IfcAnnotation)public Ifc4x2::IfcElement
(Class Ifc4x2::IfcElement)public Ifc4x2::IfcPort
(Class Ifc4x2::IfcPort)public Ifc4x2::IfcPositioningElement
(Class Ifc4x2::IfcPositioningElement)public Ifc4x2::IfcProxy
(Class Ifc4x2::IfcProxy)public Ifc4x2::IfcSpatialElement
(Class Ifc4x2::IfcSpatialElement)public Ifc4x2::IfcStructuralActivity
(Class Ifc4x2::IfcStructuralActivity)public Ifc4x2::IfcStructuralItem
(Class Ifc4x2::IfcStructuralItem)
Class Documentation¶
-
class
Ifc4x2
::
IfcProduct
: public Ifc4x2::IfcObject¶ Any object that relates to a geometric or spatial context. Subtypes of IfcProduct usually hold a shape representation and a object placement within the project structure. This includes manufactured, supplied or created objects (referred to as elements) for incorporation into an AEC/FM project. This also includes objects that are created indirectly by other products, as spaces are defined by bounding elements. Products can be designated for permanent use or temporary use, an example for the latter is formwork. Products are defined by their properties and representations. In addition to physical products (covered by the subtype IfcElement) and spatial items (covered by the subtype IfcSpatialElement) the IfcProduct also includes non-physical items, that relate to a geometric or spatial contexts, such as grid, port, annotation, structural actions, etc. The inherited ObjectType attribute can be used to designate a particular type of the product instance. If subtypes of IfcProduct have a PredefinedType defined, the ObjectType is used to provide the user defined, particular type of the product instance, if the PredefinedType is set to USERDEFINED.
HISTORY New Entity in IFC Release 1.0
Relationship use definition On a generic level products can be assigned to processes, controls, resources, project by using the relationship objects that refer to the corresponding object:
Having a control applied: assigned using IfcRelAssignsToControl linking the IfcProduct to an IfcControl
An example of this relationship is the assignment of a performance history to a distribution element.
Being assigned to a process: assigned using IfcRelAssignsToProcess linking the IfcProduct to an IfcProcess
An example of this relationship is the assignment of products like wall, slab, column to a contruction task for construction planning.
Being assigned to a resource: assigned using IfcRelAssignsToResource linking the IfcProduct to an IfcResource
An example of this relationship is the assignment of products to a construction resource that consumes the product.
Type use definition Any instance of IfcProduct defines a particular occurrence of a product, the common type information, that relates to many similar (or identical) occurrences of IfcProduct, is handled by the IfcTypeProduct (and its subtypes), assigned to one or many occurrences of IfcProduct by using the objectified relationship IfcRelDefinesByType. The IfcTypeProduct may provide, in addition to common properties, also a common geometric representation for all occurrences. See IfcTypeProduct for how to use a common geometric representation and IfcRelDefinesByType for using and overriding common properties.
Representation use definition An IfcProduct occurs at a specific location in space if it has a geometric representation assigned. It can be placed relatively to other products, but ultimately relative to the world coordinate system defined for this project. The ObjectPlacement attribute establishes the coordinate system in which all points and directions used by the geometric representation items under Representation are founded. The placement can either be:
a relative placement: by IfcLocalPlacement with PlacementRelTo pointing to a parent placement an absolute placement: by IfcLocalPlacement with PlacementRelTo being NIL a placement relative to a grid: by IfcGridPlacement
The Representation is provided by an IfcProductDefinitionShape being either a geometric shape representation, or a topology representation (with or without underlying geometry of the topological items).
Subclassed by Ifc4x2::IfcAnnotation, Ifc4x2::IfcElement, Ifc4x2::IfcPort, Ifc4x2::IfcPositioningElement, Ifc4x2::IfcProxy, Ifc4x2::IfcSpatialElement, Ifc4x2::IfcStructuralActivity, Ifc4x2::IfcStructuralItem
Public Types
-
typedef IfcTemplatedEntityList<IfcProduct>
list
¶
Public Functions
-
bool
hasObjectPlacement
() const¶ Whether the optional attribute ObjectPlacement is defined for this IfcProduct.
-
::Ifc4x2::IfcObjectPlacement *
ObjectPlacement
() const¶ Placement of the product in space, the placement can either be absolute (relative to the world coordinate system), relative (relative to the object placement of another product), or constraint (e.g. relative to grid axes). It is determined by the various subtypes of IfcObjectPlacement, which includes the axis placement information to determine the transformation for the object coordinate system.
-
void
setObjectPlacement
(::Ifc4x2::IfcObjectPlacement *v)¶
-
bool
hasRepresentation
() const¶ Whether the optional attribute Representation is defined for this IfcProduct.
-
::Ifc4x2::IfcProductRepresentation *
Representation
() const¶ Reference to the representations of the product, being either a representation (IfcProductRepresentation) or as a special case a shape representations (IfcProductDefinitionShape). The product definition shape provides for multiple geometric representations of the shape property of the object within the same object coordinate system, defined by the object placement.
-
void
setRepresentation
(::Ifc4x2::IfcProductRepresentation *v)¶
-
IfcTemplatedEntityList<IfcRelAssignsToProduct>::ptr
ReferencedBy
() const¶
-
IfcTemplatedEntityList<IfcRelPositions>::ptr
PositionedRelativeTo
() const¶
-
IfcProduct
(IfcEntityInstanceData *e)¶
-
IfcProduct
(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4x2::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4x2::IfcProductRepresentation *v7_Representation)¶
-
typedef IfcTemplatedEntityList<IfcProduct>