///////////////////////////////////////////////////////////////////////////////
// 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 _IFC4X1_IFCREINFORCEMENTBARPROPERTIES_AUTO_IMPL_H
#define _IFC4X1_IFCREINFORCEMENTBARPROPERTIES_AUTO_IMPL_H
#include "IfcPreDefinedPropertiesAutoImpl.h"
#include "TD_PackPush.h"
/** \details
The namespace contains schema-dependent classes, definitions and sub routines
for work with IFC4X1 express schema definitions.
*/
namespace OdIfc4x1 {
/** \details
IfcReinforcementProperties defines the set of properties for a specific combination of reinforcement bar steel grade, bar type and effective depth.
The total cross section area for the specific steel grade is always provided.
Additionally, general reinforcing bar configurations as a count of bars can be provided as defined in attribute BarCount.
In this case the nominal bar diameter should be identical for all bars as defined in attribute NominalBarDiameter.
*/
class IFC4X1_EXPORT IfcReinforcementBarProperties : public IfcPreDefinedProperties
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc4x1::IfcReinforcementBarProperties);
//DOM-IGNORE-END
public:
//
// OdDAI early binding accessors
//
/** \details
Returns the value of TotalCrossSectionArea attribute.
This attribute represents the total effective cross-section area of the reinforcement of a specific steel grade.
\returns
Returns the value of TotalCrossSectionArea attribute.
*/
double getTotalCrossSectionArea() const;
/** \details
Sets the value of TotalCrossSectionArea attribute.
This attribute represents the total effective cross-section area of the reinforcement of a specific steel grade.
\param TotalCrossSectionArea [in] Total cross-section area to set.
*/
void setTotalCrossSectionArea(double TotalCrossSectionArea);
/** \details
Returns the value of SteelGrade attribute.
This attribute represents the nominal steel grade defined according to local standards.
\returns
Returns the value of SteelGrade attribute.
*/
const OdAnsiString& getSteelGrade() const;
/** \details
Sets the value of SteelGrade attribute.
This attribute represents the nominal steel grade defined according to local standards.
\param SteelGrade [in] Steel grade to set.
*/
void setSteelGrade(const OdAnsiString& SteelGrade);
/** \details
Returns the value of BarSurface attribute.
This attribute indicates whether the bar surface is plain or textured.
\returns
Returns the value of BarSurface attribute.
*/
IfcReinforcingBarSurfaceEnum getBarSurface() const;
/** \details
Sets the value of BarSurface attribute.
This attribute indicates whether the bar surface is plain or textured.
\param BarSurface [in] Bar surface to set.
*/
void setBarSurface(IfcReinforcingBarSurfaceEnum BarSurface);
/** \details
Returns the value of EffectiveDepth attribute.
This attribute represents the effective depth, i.e. the distance of the specific reinforcement
cross-section area or reinforcement configuration in a row, counted from a common specific reference point.
Usually, the reference point is the upper surface (for beams and slabs) or a similar projection in a plane (for columns).
\returns
Returns the value of EffectiveDepth attribute.
*/
double getEffectiveDepth() const;
/** \details
Sets the value of EffectiveDepth attribute.
This attribute represents the effective depth, i.e. the distance of the specific reinforcement
cross-section area or reinforcement configuration in a row, counted from a common specific reference point.
Usually, the reference point is the upper surface (for beams and slabs) or a similar projection in a plane (for columns).
\param EffectiveDepth [in] Effective depth to set.
*/
void setEffectiveDepth(double EffectiveDepth);
/** \details
Returns the value of NominalBarDiameter attribute.
This attribute represents the cross-section size of the reinforcing bar.
The bar diameter should be identical for all bars included in the specific reinforcement configuration.
\returns
Returns the value of NominalBarDiameter attribute.
*/
double getNominalBarDiameter() const;
/** \details
Sets the value of NominalBarDiameter attribute.
This attribute represents the cross-section size of the reinforcing bar.
The bar diameter should be identical for all bars included in the specific reinforcement configuration.
\param NominalBarDiameter [in] Nominal bar diameter to set.
*/
void setNominalBarDiameter(double NominalBarDiameter);
/** \details
Returns the value of BarCount attribute.
This attribute represents the number of bars with identical nominal diameter
and steel grade included in the specific reinforcement configuration.
\returns
Returns the value of BarCount attribute.
*/
OdDAI::Number getBarCount() const;
/** \details
Sets the value of BarCount attribute.
This attribute represents the number of bars with identical nominal diameter
and steel grade included in the specific reinforcement configuration.
\param BarCount [in] Bar count to set.
*/
void setBarCount(OdDAI::Number BarCount);
public:
/** \details
Default constructor for the IfcReinforcementBarProperties class.
*/
IfcReinforcementBarProperties();
/** \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_TotalCrossSectionArea; // IfcAreaMeasure
OdAnsiString m_SteelGrade; // IfcLabel
OdDAI::Enum m_BarSurface; // IfcReinforcingBarSurfaceEnum [optional]
double m_EffectiveDepth; // IfcLengthMeasure [optional]
IfcPositiveLengthMeasure m_NominalBarDiameter; // IfcPositiveLengthMeasure [optional]
OdDAI::Number m_BarCount; // IfcCountMeasure [optional]
};
/** \details
A data type that represents a smart pointer to a IfcReinforcementBarProperties object.
*/
typedef OdSmartPtr IfcReinforcementBarPropertiesPtr;
} // namespace
#include "TD_PackPop.h"
#endif // _IFC4X1_IFCREINFORCEMENTBARPROPERTIES_AUTO_IMPL_H