#ifndef  ENTITY_SDAIIFCREINFORCINGBARTYPE_H
#define  ENTITY_SDAIIFCREINFORCINGBARTYPE_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 SdaiIfcreinforcingbartype : public SdaiIfcreinforcingelementtype {
     protected:
        SdaiIfcreinforcingbartypeenum_var _predefinedtype;
        SDAI_Real _nominaldiameter = 0.0;    //  OPTIONAL
        SDAI_Real _crosssectionarea = 0.0;    //  OPTIONAL
        SDAI_Real _barlength = 0.0;    //  OPTIONAL
        SdaiIfcreinforcingbarsurfaceenum_var _barsurface;    //  OPTIONAL
        SDAI_String _bendingshapecode;    //  OPTIONAL
        SdaiIfcbendingparameterselect_agg_ptr _bendingparameters = NULL;    //  OPTIONAL          //  of  ifcbendingparameterselect

    public: 
        SdaiIfcreinforcingbartype();
        SdaiIfcreinforcingbartype( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcreinforcingbartype( SdaiIfcreinforcingbartype & e );
        ~SdaiIfcreinforcingbartype();
        int opcode() {
            return 75;
        }
  const SdaiIfcreinforcingbartypeenum_var   predefinedtype_() const;
        SdaiIfcreinforcingbartypeenum_var   predefinedtype_();
        void predefinedtype_( const SdaiIfcreinforcingbartypeenum_var x );

        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 SdaiIfcreinforcingbarsurfaceenum_var   barsurface_() const;
        SdaiIfcreinforcingbarsurfaceenum_var   barsurface_();
        void barsurface_( const SdaiIfcreinforcingbarsurfaceenum_var x );

  const SdaiIfclabel   bendingshapecode_() const;
        SdaiIfclabel   bendingshapecode_();
        void bendingshapecode_( const SdaiIfclabel x );

        SdaiIfcbendingparameterselect_agg_ptr_c bendingparameters_() const;
        SdaiIfcbendingparameterselect_agg_ptr   bendingparameters_();
        void bendingparameters_( const SdaiIfcbendingparameterselect_agg_ptr x );

};

inline SdaiIfcreinforcingbartype * create_SdaiIfcreinforcingbartype() {
    return new SdaiIfcreinforcingbartype;
}

void init_SdaiIfcreinforcingbartype(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcreinforcingbartype;
    extern AttrDescriptor *a_159predefinedtype;
    extern AttrDescriptor *a_160nominaldiameter;
    extern AttrDescriptor *a_161crosssectionarea;
    extern AttrDescriptor *a_162barlength;
    extern AttrDescriptor *a_163barsurface;
    extern AttrDescriptor *a_164bendingshapecode;
    extern AttrDescriptor *a_165bendingparameters;
}

#endif
