#ifndef  ENTITY_SDAIIFCREINFORCINGBAR_H
#define  ENTITY_SDAIIFCREINFORCINGBAR_H

// This file was generated by exp2cxx,
// 0.8.1.
// You probably don't want to edit it since your modifications
// will be lost if exp2cxx is used to regenerate it.

class SC_SCHEMA_EXPORT SdaiIfcreinforcingbar : public SdaiIfcreinforcingelement {
     protected:
        SDAI_Real _nominaldiameter = 0.0;
        SDAI_Real _crosssectionarea = 0.0;
        SDAI_Real _barlength = 0.0;    //  OPTIONAL
        SdaiIfcreinforcingbarroleenum_var _barrole;
        SdaiIfcreinforcingbarsurfaceenum_var _barsurface;    //  OPTIONAL
    public: 
        SdaiIfcreinforcingbar();
        SdaiIfcreinforcingbar( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcreinforcingbar( SdaiIfcreinforcingbar & e );
        ~SdaiIfcreinforcingbar();
        int opcode() {
            return 543;
        }
        SdaiIfcpositivelengthmeasure   nominaldiameter_() const;
        void nominaldiameter_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcareameasure   crosssectionarea_() const;
        void crosssectionarea_( const SdaiIfcareameasure x );

        SdaiIfcpositivelengthmeasure   barlength_() const;
        void barlength_( const SdaiIfcpositivelengthmeasure x );

  const SdaiIfcreinforcingbarroleenum_var   barrole_() const;
        SdaiIfcreinforcingbarroleenum_var   barrole_();
        void barrole_( const SdaiIfcreinforcingbarroleenum_var x );

  const SdaiIfcreinforcingbarsurfaceenum_var   barsurface_() const;
        SdaiIfcreinforcingbarsurfaceenum_var   barsurface_();
        void barsurface_( const SdaiIfcreinforcingbarsurfaceenum_var x );

};

inline SdaiIfcreinforcingbar * create_SdaiIfcreinforcingbar() {
    return new SdaiIfcreinforcingbar;
}

void init_SdaiIfcreinforcingbar(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcreinforcingbar;
    extern AttrDescriptor *a_1198nominaldiameter;
    extern AttrDescriptor *a_1199crosssectionarea;
    extern AttrDescriptor *a_1200barlength;
    extern AttrDescriptor *a_1201barrole;
    extern AttrDescriptor *a_1202barsurface;
}

#endif
