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

#include <IfcProfileDefAutoImpl.h>

Inheritance diagram for OdIfc4x2::IfcProfileDef:
OdIfc4x2::OdIfc4x2Instance OdIfc::OdIfcInstance OdIfc4x2::IfcArbitraryClosedProfileDef OdIfc4x2::IfcArbitraryOpenProfileDef OdIfc4x2::IfcCompositeProfileDef OdIfc4x2::IfcDerivedProfileDef OdIfc4x2::IfcParameterizedProfileDef OdIfc4x2::IfcArbitraryProfileDefWithVoids OdIfc4x2::IfcCenterLineProfileDef OdIfc4x2::IfcMirroredProfileDef OdIfc4x2::IfcAsymmetricIShapeProfileDef OdIfc4x2::IfcCShapeProfileDef OdIfc4x2::IfcCircleProfileDef OdIfc4x2::IfcEllipseProfileDef OdIfc4x2::IfcIShapeProfileDef OdIfc4x2::IfcLShapeProfileDef OdIfc4x2::IfcRectangleProfileDef OdIfc4x2::IfcTShapeProfileDef OdIfc4x2::IfcTrapeziumProfileDef OdIfc4x2::IfcUShapeProfileDef OdIfc4x2::IfcZShapeProfileDef

Public Member Functions

IfcProfileTypeEnum getProfileType () const
 
void setProfileType (IfcProfileTypeEnum ProfileType)
 
const OdAnsiString & getProfileName () const
 
void setProfileName (const OdAnsiString &ProfileName)
 
void getInvHasExternalReference (OdDAIObjectIds &HasExternalReference) const
 
void getInvHasProperties (OdDAIObjectIds &HasProperties) const
 
 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 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 OdIfc4x2::OdIfc4x2Instance
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
 

Friends

class IfcExternalReferenceRelationship
 
class IfcProfileProperties
 

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.

\changes

IFC4 changes: Changed from ABSTRACT to non-abstract for uses which do not require an explicitly defined geometry.

Definition at line 98 of file Ifc4x2/IfcProfileDefAutoImpl.h.

Constructor & Destructor Documentation

◆ IfcProfileDef()

OdIfc4x2::IfcProfileDef::IfcProfileDef ( )

Default constructor for the IfcProfileDef class.

Member Function Documentation

◆ getAttr() [1/2]

◆ getAttr() [2/2]

◆ getInstanceType()

◆ getInvHasExternalReference()

void OdIfc4x2::IfcProfileDef::getInvHasExternalReference ( OdDAIObjectIds & HasExternalReference) const

Retrieves a reference to external information. For example, this information can be about library classification or document that is associated with the profile.

Parameters
ProfileName[out] Receives an array of Data Access Interface (DAI) identifiers that are related to external data objects.

◆ getInvHasProperties()

void OdIfc4x2::IfcProfileDef::getInvHasProperties ( OdDAIObjectIds & HasProperties) const

Retrieves additional properties of the profile.

Parameters
idsIfcProfileProperties[out] Receives an array of Data Access Interface (DAI) identifiers that are related to objects that define additional properties.

◆ getProfileName()

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

Returns a human-readable profile name.

Returns
A string that contains name of the profile definition.

◆ getProfileType()

IfcProfileTypeEnum OdIfc4x2::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 OdIfc4x2::IfcProfileDef::setProfileName ( const OdAnsiString & ProfileName)

Sets a human-readable name of the profile definition.

Parameters
ProfileName[in] Name of the profile definition.

◆ setProfileType()

void OdIfc4x2::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]

Friends And Related Symbol Documentation

◆ IfcExternalReferenceRelationship

friend class IfcExternalReferenceRelationship
friend

Definition at line 265 of file Ifc4x2/IfcProfileDefAutoImpl.h.

◆ IfcProfileProperties

friend class IfcProfileProperties
friend

Definition at line 266 of file Ifc4x2/IfcProfileDefAutoImpl.h.

Member Data Documentation

◆ m_ProfileName

OdAnsiString OdIfc4x2::IfcProfileDef::m_ProfileName
protected

Definition at line 262 of file Ifc4x2/IfcProfileDefAutoImpl.h.

◆ m_ProfileType

OdDAI::Enum OdIfc4x2::IfcProfileDef::m_ProfileType
protected

Definition at line 261 of file Ifc4x2/IfcProfileDefAutoImpl.h.


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