/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// // This file is generated automatically. #ifndef _IFC2X2_FINAL_IFCSTRUCTURALPROFILEPROPERTIES_AUTO_IMPL_H #define _IFC2X2_FINAL_IFCSTRUCTURALPROFILEPROPERTIES_AUTO_IMPL_H #include "IfcGeneralProfilePropertiesAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC2X2_FINAL express schema definitions. */ namespace OdIfc2x2_final { /** \details This is a collection of structural properties applicable to all linear structural members that have a profile definition. For the structural profile properties a further material dependent specialization is given for taking into account specific profile properties applicable only in the context of a specific building material. The center of gravity is measured from the origin of the geometric profile definition (see subtypes of IfcProfileDef). The CentreOfGravityInX defines the distance along the geometric x axis of the geometric profile definition, the CentreOfGravityInY defines the distance along the geometric y axis. * For parameterized profiles: Center of gravity is measured from the center of the profile definition, which is the center of the bounding box of that profile geometry. * For arbitrary profiles: Center of gravity is measured from the 0.,0. local origin of the underlying 2D coordinate system of the explicit profile definition. The shear center is measured from the gravity center and is given in the structural coordinates, defined by: * origin = center of gravity * y axis = negative x axis of the geometric coordinate system * z axis = negative y axis of the geometric coordinate system */ class IFC2X2_FINAL_EXPORT IfcStructuralProfileProperties : public IfcGeneralProfileProperties { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc2x2_final::IfcStructuralProfileProperties); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of TorsionalConstantX attribute. This attribute represents the torsional constant about X-axis of profile coordinate system. Usually measured in [mm4]. \returns Returns the value of TorsionalConstantX attribute. */ double getTorsionalConstantX() const; /** \details Sets the value of TorsionalConstantX attribute. This attribute represents the torsional constant about X-axis of profile coordinate system. Usually measured in [mm4]. \param TorsionalConstantX [in] TorsionalConstantX attribute to set. */ void setTorsionalConstantX(double TorsionalConstantX); /** \details Returns the value of MomentOfInertiaYZ attribute. This attribute represents the moment of inertia about Y and Z-axes of profile coordinate system. Usually measured in [mm4]. \returns Returns the value of MomentOfInertiaYZ attribute. */ double getMomentOfInertiaYZ() const; /** \details Sets the value of MomentOfInertiaYZ attribute. This attribute represents the moment of inertia about Y and Z-axes of profile coordinate system. Usually measured in [mm4]. \param MomentOfInertiaYZ [in] MomentOfInertiaYZ attribute to set. */ void setMomentOfInertiaYZ(double MomentOfInertiaYZ); /** \details Returns the value of MomentOfInertiaY attribute. This attribute represents the moment of inertia about Y-axis of profile coordinate system. Usually measured in [mm4]. \returns Returns the value of MomentOfInertiaY attribute. */ double getMomentOfInertiaY() const; /** \details Sets the value of MomentOfInertiaY attribute. This attribute represents the moment of inertia about Y-axis of profile coordinate system. Usually measured in [mm4]. \param MomentOfInertiaY [in] MomentOfInertiaY attribute to set. */ void setMomentOfInertiaY(double MomentOfInertiaY); /** \details Returns the value of MomentOfInertiaZ attribute. This attribute represents the moment of inertia about Z-axis of profile coordinate system. Usually measured in [mm4]. \returns Returns the value of MomentOfInertiaZ attribute. */ double getMomentOfInertiaZ() const; /** \details Sets the value of MomentOfInertiaZ attribute. This attribute represents the moment of inertia about Z-axis of profile coordinate system. Usually measured in [mm4]. \param MomentOfInertiaZ [in] MomentOfInertiaZ attribute to set. */ void setMomentOfInertiaZ(double MomentOfInertiaZ); /** \details Returns the value of WarpingConstant attribute. This attribute represents the warping constant of the profile for torsional action. Usually measured in [mm6]. \returns Returns the value of WarpingConstant attribute. */ double getWarpingConstant() const; /** \details Sets the value of WarpingConstant attribute. This attribute represents the warping constant of the profile for torsional action. Usually measured in [mm6]. \param WarpingConstant [in] WarpingConstant attribute to set. */ void setWarpingConstant(double WarpingConstant); /** \details Returns the value of ShearCentreZ attribute. This attribute represents the location of the profile's shear center in the structural Z direction. Mapped on IFC profile coordinate system it is the offset in the direction of the negative Y axis. The offset is relative to the center of gravity. The ShearCentreZ is measured in the global length unit as defined at IfcProject.UnitsInContext. \returns Returns the value of ShearCentreZ attribute. */ double getShearCentreZ() const; /** \details Sets the value of ShearCentreZ attribute. This attribute represents the location of the profile's shear center in the structural Z direction. Mapped on IFC profile coordinate system it is the offset in the direction of the negative Y axis. The offset is relative to the center of gravity. The ShearCentreZ is measured in the global length unit as defined at IfcProject.UnitsInContext. \param ShearCentreZ [in] ShearCentreZ attribute to set. */ void setShearCentreZ(double ShearCentreZ); /** \details Returns the value of ShearCentreY attribute. This attribute represents the location of the profile's shear center in the structural Y direction. Mapped on IFC profile coordinate system it is the offset in the direction of the negative X axis. The offset is relative to the center of gravity. The ShearCentreY is measured in the global length unit as defined at IfcProject.UnitsInContext. \returns Returns the value of ShearCentreY attribute. */ double getShearCentreY() const; /** \details Sets the value of ShearCentreY attribute. This attribute represents the location of the profile's shear center in the structural Y direction. Mapped on IFC profile coordinate system it is the offset in the direction of the negative X axis. The offset is relative to the center of gravity. The ShearCentreY is measured in the global length unit as defined at IfcProject.UnitsInContext. \param ShearCentreY [in] ShearCentreY attribute to set. */ void setShearCentreY(double ShearCentreY); /** \details Returns the value of ShearDeformationAreaZ attribute. This attribute represents the area of the profile for calculating the shear deformation for a shear force parallel to the profile’s Z-axis. Usually measured in [mm2]. \returns Returns the value of ShearDeformationAreaZ attribute. */ double getShearDeformationAreaZ() const; /** \details Sets the value of ShearDeformationAreaZ attribute. This attribute represents the area of the profile for calculating the shear deformation for a shear force parallel to the profile’s Z-axis. Usually measured in [mm2]. \param ShearDeformationAreaZ [in] ShearDeformationAreaZ attribute to set. */ void setShearDeformationAreaZ(double ShearDeformationAreaZ); /** \details Returns the value of ShearDeformationAreaY attribute. This attribute represents the area of the profile for calculating the shear deformation for a shear force parallel to the profile’s Y-axis. Usually measured in [mm2]. \returns Returns the value of ShearDeformationAreaY attribute. */ double getShearDeformationAreaY() const; /** \details Sets the value of ShearDeformationAreaY attribute. This attribute represents the area of the profile for calculating the shear deformation for a shear force parallel to the profile’s Y-axis. Usually measured in [mm2]. \param ShearDeformationAreaY [in] ShearDeformationAreaY attribute to set. */ void setShearDeformationAreaY(double ShearDeformationAreaY); /** \details Returns the value of MaximumSectionModulusY attribute. This attribute represents the bending resistance about Y-axis of profile coordinate system at maximum Z-ordinate. Usually measured in [mm3]. \returns Returns the value of MaximumSectionModulusY attribute. */ double getMaximumSectionModulusY() const; /** \details Sets the value of MaximumSectionModulusY attribute. This attribute represents the bending resistance about Y-axis of profile coordinate system at maximum Z-ordinate. Usually measured in [mm3]. \param MaximumSectionModulusY [in] MaximumSectionModulusY attribute to set. */ void setMaximumSectionModulusY(double MaximumSectionModulusY); /** \details Returns the value of MinimumSectionModulusY attribute. This attribute represents the bending resistance about Y-axis of profile coordinate system at minimum Z-ordinate. Usually measured in [mm3]. \returns Returns the value of MinimumSectionModulusY attribute. */ double getMinimumSectionModulusY() const; /** \details Sets the value of MinimumSectionModulusY attribute. This attribute represents the bending resistance about Y-axis of profile coordinate system at minimum Z-ordinate. Usually measured in [mm3]. \param MinimumSectionModulusY [in] MinimumSectionModulusY attribute to set. */ void setMinimumSectionModulusY(double MinimumSectionModulusY); /** \details Returns the value of MaximumSectionModulusZ attribute. This attribute represents the bending resistance about Z-axis of profile coordinate system at maximum Y-ordinate. Usually measured in [mm3]. \returns Returns the value of MaximumSectionModulusZ attribute. */ double getMaximumSectionModulusZ() const; /** \details Sets the value of MaximumSectionModulusZ attribute. This attribute represents the bending resistance about Z-axis of profile coordinate system at maximum Y-ordinate. Usually measured in [mm3]. \param MaximumSectionModulusZ [in] MaximumSectionModulusZ attribute to set. */ void setMaximumSectionModulusZ(double MaximumSectionModulusZ); /** \details Returns the value of MinimumSectionModulusZ attribute. This attribute represents the bending resistance about Z-axis of profile coordinate system at minimum Y-ordinate. Usually measured in [mm3]. \returns Returns the value of MinimumSectionModulusZ attribute. */ double getMinimumSectionModulusZ() const; /** \details Sets the value of MinimumSectionModulusZ attribute. This attribute represents the bending resistance about Z-axis of profile coordinate system at minimum Y-ordinate. Usually measured in [mm3]. \param MinimumSectionModulusZ [in] MinimumSectionModulusZ attribute to set. */ void setMinimumSectionModulusZ(double MinimumSectionModulusZ); /** \details Returns the value of TorsionalSectionModulus attribute. This attribute represents the torsional resistance (about the profiles X-axis). Usually measured in [mm3]. \returns Returns the value of TorsionalSectionModulus attribute. */ double getTorsionalSectionModulus() const; /** \details Sets the value of TorsionalSectionModulus attribute. This attribute represents the torsional resistance (about the profiles X-axis). Usually measured in [mm3]. \param TorsionalSectionModulus [in] TorsionalSectionModulus attribute to set. */ void setTorsionalSectionModulus(double TorsionalSectionModulus); public: /** \details Default constructor for the IfcStructuralProfileProperties class. */ IfcStructuralProfileProperties(); /** \details Reads object's data from the specified filer. \param rdFiler [in] Pointer to a filer from which to read the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult inFields(OdDAI::OdSpfFilerBase* rdFiler) override; /** \details Writes object's data the the specified filer. \param wrFiler [in] Pointer to a filer to which to write the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult outFields(OdDAI::OdSpfFilerBase* wrFiler) override; /** \details Returns a type of a class instance. \returns Pointer to the OdDAI::Entity type that determines an entity definition within a schema. */ virtual OdDAI::Entity* getInstanceType() const override; /** \details Returns an attribute value for the specified attribute name. \param attrName [in] Name of an attribute to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const char * attrName) const override; /** \details Resets a value for the specified attribute. \param explicitAttrName [in] Explicit name of the attribute to reset. */ virtual void unsetAttr(const char * explicitAttrName) override; /** \details Checks whether the specified attribute is set. \param explicitAttrName [in] Explicit name of the attribute to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const char * explicitAttrName) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrName [in] Explicit name of the attribute to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const char * explicitAttrName, const OdRxValue &val) override; /** \details Checks whether the specified instance is the object derived from or belongs to this class. \param entityType [in] Entity to check. \returns true if the specified instance is the object derived from or belongs to this class, false otherwise. */ virtual bool isKindOf(OdIfc::OdIfcEntityType entityType) const override; /** \details Returns the type of this entity. \returns A value of the OdIfc::OdIfcEntityType type that represents type of this entity. */ virtual OdIfc::OdIfcEntityType type() const override; /** \details Returns an attribute value for the specified attribute definition. \param attrDef [in] Attribute definition to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const OdIfc::OdIfcAttribute attrDef) const override; /** \details Resets a value for the specified attribute. \param explicitAttrDef [in] Explicit definition that represents an attribute to reset. */ virtual void unsetAttr(const OdIfc::OdIfcAttribute explicitAttrDef) override; /** \details Checks whether the specified attribute is set. \param explicitAttrDef [in] Attribute definition to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const OdIfc::OdIfcAttribute explicitAttrDef) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrDef [in] Explicit attribute definition to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override; protected: // Fields declaration: double m_TorsionalConstantX; // IfcMomentOfInertiaMeasure [optional] double m_MomentOfInertiaYZ; // IfcMomentOfInertiaMeasure [optional] double m_MomentOfInertiaY; // IfcMomentOfInertiaMeasure [optional] double m_MomentOfInertiaZ; // IfcMomentOfInertiaMeasure [optional] double m_WarpingConstant; // IfcWarpingConstantMeasure [optional] double m_ShearCentreZ; // IfcLengthMeasure [optional] double m_ShearCentreY; // IfcLengthMeasure [optional] double m_ShearDeformationAreaZ; // IfcAreaMeasure [optional] double m_ShearDeformationAreaY; // IfcAreaMeasure [optional] double m_MaximumSectionModulusY; // IfcSectionModulusMeasure [optional] double m_MinimumSectionModulusY; // IfcSectionModulusMeasure [optional] double m_MaximumSectionModulusZ; // IfcSectionModulusMeasure [optional] double m_MinimumSectionModulusZ; // IfcSectionModulusMeasure [optional] double m_TorsionalSectionModulus; // IfcSectionModulusMeasure [optional] }; /** \details A data type that represents a smart pointer to a IfcStructuralProfileProperties object. */ typedef OdSmartPtr IfcStructuralProfilePropertiesPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC2X2_FINAL_IFCSTRUCTURALPROFILEPROPERTIES_AUTO_IMPL_H