#ifndef  ENTITY_SDAIIFCELECTRICALBASEPROPERTIES_H
#define  ENTITY_SDAIIFCELECTRICALBASEPROPERTIES_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 SdaiIfcelectricalbaseproperties : public SdaiIfcenergyproperties {
     protected:
        SdaiIfcelectriccurrentenum_var _electriccurrenttype;    //  OPTIONAL
        SDAI_Real _inputvoltage = 0.0;
        SDAI_Real _inputfrequency = 0.0;
        SDAI_Real _fullloadcurrent = 0.0;    //  OPTIONAL
        SDAI_Real _minimumcircuitcurrent = 0.0;    //  OPTIONAL
        SDAI_Real _maximumpowerinput = 0.0;    //  OPTIONAL
        SDAI_Real _ratedpowerinput = 0.0;    //  OPTIONAL
        SDAI_Integer _inputphase = 0;
    public: 
        SdaiIfcelectricalbaseproperties();
        SdaiIfcelectricalbaseproperties( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcelectricalbaseproperties( SdaiIfcelectricalbaseproperties & e );
        ~SdaiIfcelectricalbaseproperties();
        int opcode() {
            return 54;
        }
  const SdaiIfcelectriccurrentenum_var   electriccurrenttype_() const;
        SdaiIfcelectriccurrentenum_var   electriccurrenttype_();
        void electriccurrenttype_( const SdaiIfcelectriccurrentenum_var x );

        SdaiIfcelectricvoltagemeasure   inputvoltage_() const;
        void inputvoltage_( const SdaiIfcelectricvoltagemeasure x );

        SdaiIfcfrequencymeasure   inputfrequency_() const;
        void inputfrequency_( const SdaiIfcfrequencymeasure x );

        SdaiIfcelectriccurrentmeasure   fullloadcurrent_() const;
        void fullloadcurrent_( const SdaiIfcelectriccurrentmeasure x );

        SdaiIfcelectriccurrentmeasure   minimumcircuitcurrent_() const;
        void minimumcircuitcurrent_( const SdaiIfcelectriccurrentmeasure x );

        SdaiIfcpowermeasure   maximumpowerinput_() const;
        void maximumpowerinput_( const SdaiIfcpowermeasure x );

        SdaiIfcpowermeasure   ratedpowerinput_() const;
        void ratedpowerinput_( const SdaiIfcpowermeasure x );

        SDAI_Integer   inputphase_() const;
        void inputphase_( const SDAI_Integer x );

};

inline SdaiIfcelectricalbaseproperties * create_SdaiIfcelectricalbaseproperties() {
    return new SdaiIfcelectricalbaseproperties;
}

void init_SdaiIfcelectricalbaseproperties(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcelectricalbaseproperties;
    extern AttrDescriptor *a_98electriccurrenttype;
    extern AttrDescriptor *a_99inputvoltage;
    extern AttrDescriptor *a_100inputfrequency;
    extern AttrDescriptor *a_101fullloadcurrent;
    extern AttrDescriptor *a_102minimumcircuitcurrent;
    extern AttrDescriptor *a_103maximumpowerinput;
    extern AttrDescriptor *a_104ratedpowerinput;
    extern AttrDescriptor *a_105inputphase;
}

#endif
