#ifndef  ENTITY_SDAIIFCTIMESERIES_H
#define  ENTITY_SDAIIFCTIMESERIES_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 SdaiIfctimeseries : public SDAI_Application_instance {
    protected:
        SDAI_String _name;
        SDAI_String _description;    //  OPTIONAL
        SDAI_String _starttime;
        SDAI_String _endtime;
        SdaiIfctimeseriesdatatypeenum_var _timeseriesdatatype;
        SdaiIfcdataoriginenum_var _dataorigin;
        SDAI_String _userdefineddataorigin;    //  OPTIONAL
        SdaiIfcunit _unit;    //  OPTIONAL
    public: 
        SdaiIfctimeseries();
        SdaiIfctimeseries( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfctimeseries( SdaiIfctimeseries & e );
        ~SdaiIfctimeseries();
        int opcode() {
            return 459;
        }
  const SdaiIfclabel   name_() const;
        SdaiIfclabel   name_();
        void name_( const SdaiIfclabel x );

  const SdaiIfctext   description_() const;
        SdaiIfctext   description_();
        void description_( const SdaiIfctext x );

  const SdaiIfcdatetime   starttime_() const;
        SdaiIfcdatetime   starttime_();
        void starttime_( const SdaiIfcdatetime x );

  const SdaiIfcdatetime   endtime_() const;
        SdaiIfcdatetime   endtime_();
        void endtime_( const SdaiIfcdatetime x );

  const SdaiIfctimeseriesdatatypeenum_var   timeseriesdatatype_() const;
        SdaiIfctimeseriesdatatypeenum_var   timeseriesdatatype_();
        void timeseriesdatatype_( const SdaiIfctimeseriesdatatypeenum_var x );

  const SdaiIfcdataoriginenum_var   dataorigin_() const;
        SdaiIfcdataoriginenum_var   dataorigin_();
        void dataorigin_( const SdaiIfcdataoriginenum_var x );

  const SdaiIfclabel   userdefineddataorigin_() const;
        SdaiIfclabel   userdefineddataorigin_();
        void userdefineddataorigin_( const SdaiIfclabel x );

        SdaiIfcunit_ptr_c unit_() const;
        SdaiIfcunit_ptr   unit_();
        void unit_( const SdaiIfcunit_ptr x );

        EntityAggregate_ptr_c hasexternalreference_() const;
        EntityAggregate_ptr   hasexternalreference_();
        void hasexternalreference_( const EntityAggregate_ptr x );

};

inline SdaiIfctimeseries * create_SdaiIfctimeseries() {
    return new SdaiIfctimeseries;
}

void init_SdaiIfctimeseries(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifctimeseries;
    extern AttrDescriptor *a_1008name;
    extern AttrDescriptor *a_1009description;
    extern AttrDescriptor *a_1010starttime;
    extern AttrDescriptor *a_1011endtime;
    extern AttrDescriptor *a_1012timeseriesdatatype;
    extern AttrDescriptor *a_1013dataorigin;
    extern AttrDescriptor *a_1014userdefineddataorigin;
    extern AttrDescriptor *a_1015unit;
    extern Inverse_attribute *a_1016Ihasexternalreference;
}

#endif
