Class Ifc4x1::IfcIShapeProfileDef

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcIShapeProfileDef : public Ifc4x1::IfcParameterizedProfileDef

IfcIShapeProfileDef defines a section profile that provides the defining parameters of a symmetrical ‘I’ section to be used by the swept surface geometry or the swept area solid. The I-shape profile has values for its overall depth, width and its web and flange thickness. Additionally a fillet radius may be given. It represents a I-section that is symmetrical about its major and minor axes; and that has both top and bottom flanges being equal and centred on the web.

IfcIShapeProfileDef can also be used to model I sections with sloped or rounded flanges. The slope and radius cannot be expressed in explicit attributes, but they may be retrieved by reference to an external document or library. See IfcProfileDef for guidance on external references for profile definitions.

HISTORY New entity in IFC2x.

IFC2x4 CHANGE Type of FilletRadius relaxed to allow for zero radius.

Figure 318 illustrates parameters of the I-shape profile definition.


The parameterized profile defines its own position coordinate system. The underlying coordinate system is defined by the swept area solid that uses the profile definition. It is the xy plane of:


by using offsets of the position location, the parameterized profile can be positioned centric (using x,y offsets = 0.), or at any position relative to the profile. Explicit coordinate offsets are used to define cardinal points (e.g. upper-left bound). Parameter

The parameterized profile is defined by a set of parameter attributes, see attribute definition below.

Note: The black coordinate axes show the underlying coordinate system of the swept surface or swept area solid


The profile is inserted into the underlying coordinate system of the swept area solid by using the Position attribute. In this example (cardinal point of lower left corner) the attribute values of IfcAxis2Placement2D are:

Location = IfcCartesianPoint(,) RefDirection = NIL (defaults to 1.,0.)

Parameter If the FilletRadius is given, it is equally applied to all four corners created by the web and flanges.

Figure 318 — I-shape profile

Public Types

typedef IfcTemplatedEntityList<IfcIShapeProfileDef> list

Public Functions

double OverallWidth() const

Total extent of the width, defined parallel to the x axis of the position coordinate system.

void setOverallWidth(double v)
double OverallDepth() const

Total extent of the depth, defined parallel to the y axis of the position coordinate system.

void setOverallDepth(double v)
double WebThickness() const

Thickness of the web of the I-shape. The web is centred on the x-axis and the y-axis of the position coordinate system.

void setWebThickness(double v)
double FlangeThickness() const

Flange thickness of the I-shape. Both, the upper and the lower flanges have the same thickness and they are centred on the y-axis of the position coordinate system.

void setFlangeThickness(double v)
bool hasFilletRadius() const

Whether the optional attribute FilletRadius is defined for this IfcIShapeProfileDef.

double FilletRadius() const

The fillet between the web and the flange.

void setFilletRadius(double v)
bool hasFlangeEdgeRadius() const

Whether the optional attribute FlangeEdgeRadius is defined for this IfcIShapeProfileDef.

double FlangeEdgeRadius() const
void setFlangeEdgeRadius(double v)
bool hasFlangeSlope() const

Whether the optional attribute FlangeSlope is defined for this IfcIShapeProfileDef.

double FlangeSlope() const
void setFlangeSlope(double v)
const IfcParse::entity &declaration() const
IfcIShapeProfileDef(IfcEntityInstanceData *e)
IfcIShapeProfileDef(::Ifc4x1::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional<std::string> v2_ProfileName, ::Ifc4x1::IfcAxis2Placement2D *v3_Position, double v4_OverallWidth, double v5_OverallDepth, double v6_WebThickness, double v7_FlangeThickness, boost::optional<double> v8_FilletRadius, boost::optional<double> v9_FlangeEdgeRadius, boost::optional<double> v10_FlangeSlope)

Public Static Functions

const IfcParse::entity &Class()