#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;    //  OPTIONAL
        SDAI_Real _crosssectionarea = 0.0;    //  OPTIONAL
        SDAI_Real _barlength = 0.0;    //  OPTIONAL
        SdaiIfcreinforcingbartypeenum_var _predefinedtype;    //  OPTIONAL
        SdaiIfcreinforcingbarsurfaceenum_var _barsurface;    //  OPTIONAL
    public: 
        SdaiIfcreinforcingbar();
        SdaiIfcreinforcingbar( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcreinforcingbar( SdaiIfcreinforcingbar & e );
        ~SdaiIfcreinforcingbar();
        int opcode() {
            return 640;
        }
        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 SdaiIfcreinforcingbartypeenum_var   predefinedtype_() const;
        SdaiIfcreinforcingbartypeenum_var   predefinedtype_();
        void predefinedtype_( const SdaiIfcreinforcingbartypeenum_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 ifc4 {
    extern EntityDescriptor *e_ifcreinforcingbar;
    extern AttrDescriptor *a_1420nominaldiameter;
    extern AttrDescriptor *a_1421crosssectionarea;
    extern AttrDescriptor *a_1422barlength;
    extern AttrDescriptor *a_1423predefinedtype;
    extern AttrDescriptor *a_1424barsurface;
}

#endif
