Class Ifc2x3::IfcDerivedProfileDef¶
Defined in File Ifc2x3.h
Nested Relationships¶
This class is a nested type of Struct Ifc2x3.
Inheritance Relationships¶
Base Type¶
public Ifc2x3::IfcProfileDef
(Class Ifc2x3::IfcProfileDef)
Class Documentation¶
-
class
Ifc2x3
::
IfcDerivedProfileDef
: public Ifc2x3::IfcProfileDef¶ IfcDerivedProfileDef defines the profile by transformation from the parent profile. The transformation is given by a two dimensional transformation operator. Transformation includes translation, rotation, mirror and scaling. The latter can be uniform or non uniform. The derived profiles may be used to define swept surfaces, swept area solids or sectioned spines.
The transformation effects the position, rotation, mirroring or scale of the profile at the underlying coordinate system, i.e. the coordinate system defined by the swept surface or swept area solid that uses the profile definition. It is the xy plane of either:
IfcSweptSurface.Position IfcSweptAreaSolid.Position
or in case of sectioned spines the xy plane of each list member of IfcSectionedSpine.CrossSectionPositions. The position and potential rotation of the ParentProfile within the underlying coordinate system is taken into consideration before applying the Cartesian transformation operator.
Note, if only mirroring is required, IfcMirroredProfileDef should be used instead.
HISTORY: New entity in IFC Release 2x.
Figure 316 illustrates examples of derived profiles.
Parameter The IfcDerivedProfileDef is defined using the IfcCartesianTransformationOperator2D (CTO), which is applied to the parent profile definition.
Example The example shows an uniform scaling and a transformation of an IfcRectangleProfileDef to match the lower-left cardinal point. The attributes of the CTO are:
Axis1 = NIL (defaults to 1.,0.) Axis2 = NIL (defaults to 0.,1.) LocalOrigin = IfcCartesianPoint(,) Scale = 2.
Note: The ParentProfile has a Position = IfcCartesianPoint(,) already.
Parameter The IfcDerivedProfileDef is defined using non uniform transformationsby applying the IfcCartesianTransformationOperator2DnonUniform as a subtype of the 2D CTO.
Example The example shows a non-uniform scaling and a translation of an IfcRectangleProfileDef to match the lower-left cardinal point. The attributes of the CTO are:
Axis1 = NIL (defaults to 1.,0.) Axis2 = NIL (defaults to 0.,1.) LocalOrigin = IfcCartesianPoint(0.,<1/2 YDim) Scale = 1. Scale2 = 2.
Note: The ParentProfile has a Position = IfcCartesianPoint(,) already.
Parameter The IfcDerivedProfileDef is defined using mirroring by applying the IfcCartesianTransformationOperator2D (CTO) to the parent profile.
Example The example shows a mirroring of an IfcLShapeProfileDef to match the centre cardinal point. The attributes of the CTO are:
Axis1 = (-1.,0.) Axis2 = NIL (defaults to 0.,1.) LocalOrigin = IfcCartesianPoint(0.,0.) Scale = NIL (defaults to 1.)
Note: The ParentProfile has a Position = IfcCartesianPoint(0.,0.).
This example is for illustration only. If the transformation results only in mirroring like shown in the example, then IfcMirroredProfileDef should be used instead of IfcDerivedProfileDef.
Note: The following color map applies:
black coordinate axes show the underlying coordinate system of the swept surface, swept area solid, or sectioned spine
red coordinate axes show the position coordinate system of the parent profile
brown coordinate axes show the position coordinate system of the derived profile
Figure 316 — Derived profile
Public Types
-
typedef IfcTemplatedEntityList<IfcDerivedProfileDef>
list
¶
Public Functions
-
::Ifc2x3::IfcProfileDef *
ParentProfile
() const¶ The parent profile provides the origin of the transformation.
-
void
setParentProfile
(::Ifc2x3::IfcProfileDef *v)¶
-
::Ifc2x3::IfcCartesianTransformationOperator2D *
Operator
() const¶ Transformation operator applied to the parent profile.
-
void
setOperator
(::Ifc2x3::IfcCartesianTransformationOperator2D *v)¶
-
bool
hasLabel
() const¶ Whether the optional attribute Label is defined for this IfcDerivedProfileDef.
-
std::string
Label
() const¶ The name by which the transformation may be referred to. The actual meaning of the name has to be defined in the context of applications.
-
void
setLabel
(std::string v)¶
-
IfcDerivedProfileDef
(IfcEntityInstanceData *e)¶
-
IfcDerivedProfileDef
(::Ifc2x3::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional<std::string> v2_ProfileName, ::Ifc2x3::IfcProfileDef *v3_ParentProfile, ::Ifc2x3::IfcCartesianTransformationOperator2D *v4_Operator, boost::optional<std::string> v5_Label)¶
-
typedef IfcTemplatedEntityList<IfcDerivedProfileDef>