#ifndef  ENTITY_SDAIIFCREINFORCINGMESHTYPE_H
#define  ENTITY_SDAIIFCREINFORCINGMESHTYPE_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 SdaiIfcreinforcingmeshtype : public SdaiIfcreinforcingelementtype {
     protected:
        SdaiIfcreinforcingmeshtypeenum_var _predefinedtype;
        SDAI_Real _meshlength = 0.0;    //  OPTIONAL
        SDAI_Real _meshwidth = 0.0;    //  OPTIONAL
        SDAI_Real _longitudinalbarnominaldiameter = 0.0;    //  OPTIONAL
        SDAI_Real _transversebarnominaldiameter = 0.0;    //  OPTIONAL
        SDAI_Real _longitudinalbarcrosssectionarea = 0.0;    //  OPTIONAL
        SDAI_Real _transversebarcrosssectionarea = 0.0;    //  OPTIONAL
        SDAI_Real _longitudinalbarspacing = 0.0;    //  OPTIONAL
        SDAI_Real _transversebarspacing = 0.0;    //  OPTIONAL
        SDAI_String _bendingshapecode;    //  OPTIONAL
        SdaiIfcbendingparameterselect_agg_ptr _bendingparameters = NULL;    //  OPTIONAL          //  of  ifcbendingparameterselect

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

        SdaiIfcpositivelengthmeasure   meshlength_() const;
        void meshlength_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   meshwidth_() const;
        void meshwidth_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   longitudinalbarnominaldiameter_() const;
        void longitudinalbarnominaldiameter_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   transversebarnominaldiameter_() const;
        void transversebarnominaldiameter_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcareameasure   longitudinalbarcrosssectionarea_() const;
        void longitudinalbarcrosssectionarea_( const SdaiIfcareameasure x );

        SdaiIfcareameasure   transversebarcrosssectionarea_() const;
        void transversebarcrosssectionarea_( const SdaiIfcareameasure x );

        SdaiIfcpositivelengthmeasure   longitudinalbarspacing_() const;
        void longitudinalbarspacing_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   transversebarspacing_() const;
        void transversebarspacing_( const SdaiIfcpositivelengthmeasure 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 SdaiIfcreinforcingmeshtype * create_SdaiIfcreinforcingmeshtype() {
    return new SdaiIfcreinforcingmeshtype;
}

void init_SdaiIfcreinforcingmeshtype(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcreinforcingmeshtype;
    extern AttrDescriptor *a_277predefinedtype;
    extern AttrDescriptor *a_278meshlength;
    extern AttrDescriptor *a_279meshwidth;
    extern AttrDescriptor *a_280longitudinalbarnominaldiameter;
    extern AttrDescriptor *a_281transversebarnominaldiameter;
    extern AttrDescriptor *a_282longitudinalbarcrosssectionarea;
    extern AttrDescriptor *a_283transversebarcrosssectionarea;
    extern AttrDescriptor *a_284longitudinalbarspacing;
    extern AttrDescriptor *a_285transversebarspacing;
    extern AttrDescriptor *a_286bendingshapecode;
    extern AttrDescriptor *a_287bendingparameters;
}

#endif
