#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
        SdaiIfcdatetimeselect _starttime;
        SdaiIfcdatetimeselect _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 386;
        }
  const SdaiIfclabel   name_() const;
        SdaiIfclabel   name_();
        void name_( const SdaiIfclabel x );

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

        SdaiIfcdatetimeselect_ptr_c starttime_() const;
        SdaiIfcdatetimeselect_ptr   starttime_();
        void starttime_( const SdaiIfcdatetimeselect_ptr x );

        SdaiIfcdatetimeselect_ptr_c endtime_() const;
        SdaiIfcdatetimeselect_ptr   endtime_();
        void endtime_( const SdaiIfcdatetimeselect_ptr 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 documentedby_() const;
        EntityAggregate_ptr   documentedby_();
        void documentedby_( const EntityAggregate_ptr x );

};

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

void init_SdaiIfctimeseries(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifctimeseries;
    extern AttrDescriptor *a_857name;
    extern AttrDescriptor *a_858description;
    extern AttrDescriptor *a_859starttime;
    extern AttrDescriptor *a_860endtime;
    extern AttrDescriptor *a_861timeseriesdatatype;
    extern AttrDescriptor *a_862dataorigin;
    extern AttrDescriptor *a_863userdefineddataorigin;
    extern AttrDescriptor *a_864unit;
    extern Inverse_attribute *a_865Idocumentedby;
}

#endif
