CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
OdIfc2x3::IfcProfileDef Class Reference

#include <IfcProfileDefAutoImpl.h>

Inheritance diagram for OdIfc2x3::IfcProfileDef:
OdIfc2x3::OdIfc2x3Instance OdIfc::OdIfcInstance OdIfc2x3::IfcArbitraryClosedProfileDef OdIfc2x3::IfcArbitraryOpenProfileDef OdIfc2x3::IfcCompositeProfileDef OdIfc2x3::IfcDerivedProfileDef OdIfc2x3::IfcParameterizedProfileDef OdIfc2x3::IfcArbitraryProfileDefWithVoids OdIfc2x3::IfcCenterLineProfileDef OdIfc2x3::IfcCShapeProfileDef OdIfc2x3::IfcCircleProfileDef OdIfc2x3::IfcCraneRailAShapeProfileDef OdIfc2x3::IfcCraneRailFShapeProfileDef OdIfc2x3::IfcEllipseProfileDef OdIfc2x3::IfcIShapeProfileDef OdIfc2x3::IfcLShapeProfileDef OdIfc2x3::IfcRectangleProfileDef OdIfc2x3::IfcTShapeProfileDef OdIfc2x3::IfcTrapeziumProfileDef OdIfc2x3::IfcUShapeProfileDef OdIfc2x3::IfcZShapeProfileDef

Public Member Functions

IfcProfileTypeEnum getProfileType () const
 
void setProfileType (IfcProfileTypeEnum ProfileType)
 
const OdAnsiString & getProfileName () const
 
void setProfileName (const OdAnsiString &ProfileName)
 
 IfcProfileDef ()
 
virtual OdResult inFields (OdDAI::OdSpfFilerBase *rdFiler) override
 
virtual OdResult outFields (OdDAI::OdSpfFilerBase *wrFiler) override
 
virtual OdDAI::Entity * getInstanceType () const override
 
virtual OdRxValue getAttr (const char *attrName) const override
 
virtual bool comparedToEarlyImpl (const OdDAI::ApplicationInstance *pOther, OdRx::Ordering &ordering) const override
 
virtual void unsetAttr (const char *explicitAttrName) override
 
virtual bool testAttr (const char *explicitAttrName) const override
 
virtual bool putAttr (const char *explicitAttrName, const OdRxValue &val) override
 
virtual bool isKindOf (OdIfc::OdIfcEntityType entityType) const override
 
virtual OdIfc::OdIfcEntityType type () const override
 
virtual OdRxValue getAttr (const OdIfc::OdIfcAttribute attrDef) const override
 
virtual void unsetAttr (const OdIfc::OdIfcAttribute explicitAttrDef) override
 
virtual bool testAttr (const OdIfc::OdIfcAttribute explicitAttrDef) const override
 
virtual bool putAttr (const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override
 
- Public Member Functions inherited from OdIfc2x3::OdIfc2x3Instance
void setInverseCounterParts () override
 
- Public Member Functions inherited from OdIfc::OdIfcInstance
 ODRX_DECLARE_MEMBERS (OdIfcInstance)
 
 OdIfcInstance ()
 
 ~OdIfcInstance ()
 
bool isInstanceOf (OdIfcEntityType entityType) const
 
IfcOpResult resolved ()
 
void resolve (IfcOpResult resolved, void *resPtr)
 
void unresolve ()
 
virtual void setGsNode (OdGsCache *pGsNode)
 
virtual OdGsCachegsNode () const
 
virtual OdUInt32 subSetAttributes (OdGiDrawableTraits *traits) const
 
virtual bool subWorldDraw (OdGiWorldDraw *wd) const
 
virtual OdDbStub * ownerId () const
 

Protected Attributes

OdDAI::Enum m_ProfileType
 
OdAnsiString m_ProfileName
 
- Protected Attributes inherited from OdIfc::OdIfcInstance
voidm_resPtr
 
IfcOpResult m_resolved
 

Additional Inherited Members

- Static Public Member Functions inherited from OdIfc::OdIfcInstance
static const OdGePoint3dasPoint3d (const OdIfcInstance *inst)
 
static const OdGePoint2dasPoint2d (const OdIfcInstance *inst)
 
static const OdGeVector3dasVector3d (const OdIfcInstance *inst)
 
static const OdGeVector2dasVector2d (const OdIfcInstance *inst)
 
static const OdGeMatrix2dasMatrix2d (const OdIfcInstance *inst)
 
static const OdGeMatrix3dasMatrix3d (const OdIfcInstance *inst)
 
static OdIfcCompoundPtr asCompound (OdSmartPtr< OdIfcInstance > inst)
 
static const OdCmEntityColorasRgbColor (const OdIfcInstance *inst)
 

Detailed Description

IfcProfileDef is the base class for all definitions of standard and custom profiles used within IFC. This class defines a standard set of commonly used section profiles by their parameters or by their explicit curve geometry. Parameterized profiles are 2D primitives, which are used within the industry to describe cross sections by a description of its parameters. Arbitrary profiles are cross sections defined by an outer boundary as bounded curve, which can also include holes, defined by inner boundaries. Derived profiles, based on a transformation of a parent profile, are also part of the profile definitions available. In addition composite profiles can be defined, which include two or more profile definitions to define the resulting profile.

  • Use in Material Association - Beams, columns, and similarly shaped building elements and their type objects can be associated with a section profile definition, combined with material definition, by means of IfcRelAssociatesMaterial together with IfcMaterialProfileSet and IfcMaterialProfileSetUsage. This way, building elements and element types with same section and material can share a common section profile definition and association.

The profile definition in material association is required to be consistent with shape representations of the respective building elements.

The purpose of the profile definition within the sectioned spine is to define a varying cross sections at several positions along a spine curve. The subtype IfcDerivedProfileDef is particularly suited to provide the consecutive profiles to be based on transformations of the start profile and thus maintaining the identity of vertices and edges.

An IfcProfileDef is treated as bounded area if it is used within swept area solids. In this case, the inside of the profile is part of the profile. The attribute ProfileType is set to AREA. An IfcProfileDef is treated as a curve if it is used within swept surfaces. In this case, the inside of the profile (if the curve is closed) is not part of the profile. The attribute ProfileType is set to CURVE.

  • Profile Types - The ProfileType defines whether the inside (the bounded area) is part of the profile definition (Area) or not (Curve).
  • Profile Specification by External Reference - If the profile is standardized by a norm or a catalogue, a reference to this norm or catalogue should be provided by means of HasExternalReference. This inverse relationship is used to associate an IfcExternalReference (notably IfcClassificationReference or IfcLibraryReference) with the profile. IfcClassificationReference is used to refer to a profile norm (a common standard or manufacturer's standard). In this case, IfcClassificationReference.ItemReference contains the formal profile designation from the norm. (On the other hand, IfcProfileDef.ProfileName contains a displayable name which may not necessarily be the same as the formal designation.) IfcClassificationReference.Name carries the short name of the profile norm. Optionally, the norm can be further described by IfcClassificationReference.ReferencedSource.

IfcLibraryReference is used to refer to a library which contains profile definitions. In this case, IfcLibraryReference.ItemReference contains the identifier of the profile within the library and is meant to be machine-readable (in contrast to IfcProfileDef.ProfileName which should be human-readable). IfcLibraryReference.Location and .Name or .ReferencedLibrary further describe the library.

If an external reference is provided, sending systems shall ensure that the shape of the profile definition object agrees with the definitions in the referenced classification or library.

  • Direct instances of IfcProfileDef - Usually, only subtypes of IfcProfileDef should be instantiated. In some special cases, e.g. if the profile object is used for purposes other than geometric models (e.g. for structural analysis models), it can be possible to directly instantiate IfcProfileDef and further specify the profile only by external reference or by profile properties. The latter are tracked by the inverse attribute HasProperties.

Definition at line 93 of file Ifc2x3/IfcProfileDefAutoImpl.h.

Constructor & Destructor Documentation

◆ IfcProfileDef()

OdIfc2x3::IfcProfileDef::IfcProfileDef ( )

Default constructor for the IfcProfileDef class.

Member Function Documentation

◆ comparedToEarlyImpl()

virtual bool OdIfc2x3::IfcProfileDef::comparedToEarlyImpl ( const OdDAI::ApplicationInstance * pOther,
OdRx::Ordering & ordering ) const
overridevirtual

Early-bound version of instances comparison.

Parameters
pOther[in] Other application instance.
ordering[out] Receives the ordering (comparison) status.
Returns
true if comparison was performed, false if method has no implementation, so late-bound version could be applied.
Remarks
If the method returns true, the ordering parameter can receive one of the following statuses:
Value Description kLessThan -1 This object < Other Object. kEqual 0 This object = Other Object. kGreaterThan 1 This object > Other Object. kNotOrderable 2 This class is not orderable.

Reimplemented in OdIfc2x3::IfcArbitraryClosedProfileDef, OdIfc2x3::IfcArbitraryOpenProfileDef, OdIfc2x3::IfcArbitraryProfileDefWithVoids, OdIfc2x3::IfcAsymmetricIShapeProfileDef, OdIfc2x3::IfcCenterLineProfileDef, OdIfc2x3::IfcCircleHollowProfileDef, OdIfc2x3::IfcCircleProfileDef, OdIfc2x3::IfcCompositeProfileDef, OdIfc2x3::IfcCraneRailAShapeProfileDef, OdIfc2x3::IfcCraneRailFShapeProfileDef, OdIfc2x3::IfcCShapeProfileDef, OdIfc2x3::IfcDerivedProfileDef, OdIfc2x3::IfcEllipseProfileDef, OdIfc2x3::IfcIShapeProfileDef, OdIfc2x3::IfcLShapeProfileDef, OdIfc2x3::IfcParameterizedProfileDef, OdIfc2x3::IfcRectangleHollowProfileDef, OdIfc2x3::IfcRectangleProfileDef, OdIfc2x3::IfcRoundedRectangleProfileDef, OdIfc2x3::IfcTrapeziumProfileDef, OdIfc2x3::IfcTShapeProfileDef, OdIfc2x3::IfcUShapeProfileDef, and OdIfc2x3::IfcZShapeProfileDef.

◆ getAttr() [1/2]

◆ getAttr() [2/2]

◆ getInstanceType()

◆ getProfileName()

const OdAnsiString & OdIfc2x3::IfcProfileDef::getProfileName ( ) const

Returns a human-readable profile name.

Returns
A string that contains name of the profile definition.

◆ getProfileType()

IfcProfileTypeEnum OdIfc2x3::IfcProfileDef::getProfileType ( ) const

Returns the type of geometry into which this profile definition is resolved.

Returns
Geometry type of the profile definition which is either a curve or a surface area. In case of curve the inside (the bounded area) is not part of the profile definition, in case of area - it is.

◆ inFields()

◆ isKindOf()

◆ outFields()

◆ putAttr() [1/2]

◆ putAttr() [2/2]

◆ setProfileName()

void OdIfc2x3::IfcProfileDef::setProfileName ( const OdAnsiString & ProfileName)

Sets a human-readable name of the profile definition.

Parameters
ProfileName[in] Name of the profile definition.

◆ setProfileType()

void OdIfc2x3::IfcProfileDef::setProfileType ( IfcProfileTypeEnum ProfileType)

Sets the type of geometry for the profile definition.

Parameters
ProfileType[in] Profile type to set. In case of curve the profile should be referenced by a swept surface, in case of area the profile should be referenced by a swept area solid.

◆ testAttr() [1/2]

◆ testAttr() [2/2]

◆ type()

◆ unsetAttr() [1/2]

◆ unsetAttr() [2/2]

Member Data Documentation

◆ m_ProfileName

OdAnsiString OdIfc2x3::IfcProfileDef::m_ProfileName
protected

Definition at line 264 of file Ifc2x3/IfcProfileDefAutoImpl.h.

◆ m_ProfileType

OdDAI::Enum OdIfc2x3::IfcProfileDef::m_ProfileType
protected

Definition at line 263 of file Ifc2x3/IfcProfileDefAutoImpl.h.


The documentation for this class was generated from the following file: