#ifndef  ENTITY_SDAIIFCREINFORCEMENTBARPROPERTIES_H
#define  ENTITY_SDAIIFCREINFORCEMENTBARPROPERTIES_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 SdaiIfcreinforcementbarproperties : public SdaiIfcpredefinedproperties {
     protected:
        SDAI_Real _totalcrosssectionarea = 0.0;
        SDAI_String _steelgrade;
        SdaiIfcreinforcingbarsurfaceenum_var _barsurface;    //  OPTIONAL
        SDAI_Real _effectivedepth = 0.0;    //  OPTIONAL
        SDAI_Real _nominalbardiameter = 0.0;    //  OPTIONAL
        SDAI_Real _barcount;    //  OPTIONAL
    public: 
        SdaiIfcreinforcementbarproperties();
        SdaiIfcreinforcementbarproperties( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcreinforcementbarproperties( SdaiIfcreinforcementbarproperties & e );
        ~SdaiIfcreinforcementbarproperties();
        int opcode() {
            return 226;
        }
        SdaiIfcareameasure   totalcrosssectionarea_() const;
        void totalcrosssectionarea_( const SdaiIfcareameasure x );

  const SdaiIfclabel   steelgrade_() const;
        SdaiIfclabel   steelgrade_();
        void steelgrade_( const SdaiIfclabel x );

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

        SdaiIfclengthmeasure   effectivedepth_() const;
        void effectivedepth_( const SdaiIfclengthmeasure x );

        SdaiIfcpositivelengthmeasure   nominalbardiameter_() const;
        void nominalbardiameter_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfccountmeasure   barcount_() const;
        void barcount_( const SdaiIfccountmeasure x );

};

inline SdaiIfcreinforcementbarproperties * create_SdaiIfcreinforcementbarproperties() {
    return new SdaiIfcreinforcementbarproperties;
}

void init_SdaiIfcreinforcementbarproperties(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcreinforcementbarproperties;
    extern AttrDescriptor *a_507totalcrosssectionarea;
    extern AttrDescriptor *a_508steelgrade;
    extern AttrDescriptor *a_509barsurface;
    extern AttrDescriptor *a_510effectivedepth;
    extern AttrDescriptor *a_511nominalbardiameter;
    extern AttrDescriptor *a_512barcount;
}

#endif
