#ifndef  ENTITY_SDAIIFCRELSEQUENCE_H
#define  ENTITY_SDAIIFCRELSEQUENCE_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 SdaiIfcrelsequence : public SdaiIfcrelconnects {
     protected:
        SDAI_Application_instance_ptr _relatingprocess = NULL;
        SDAI_Application_instance_ptr _relatedprocess = NULL;
        SDAI_Application_instance_ptr _timelag = NULL;    //  OPTIONAL
        SdaiIfcsequenceenum_var _sequencetype;    //  OPTIONAL
        SDAI_String _userdefinedsequencetype;    //  OPTIONAL
    public: 
        SdaiIfcrelsequence();
        SdaiIfcrelsequence( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcrelsequence( SdaiIfcrelsequence & e );
        ~SdaiIfcrelsequence();
        int opcode() {
            return 215;
        }
        SdaiIfcprocess_ptr_c relatingprocess_() const;
        SdaiIfcprocess_ptr   relatingprocess_();
        void relatingprocess_( const SdaiIfcprocess_ptr x );

        SdaiIfcprocess_ptr_c relatedprocess_() const;
        SdaiIfcprocess_ptr   relatedprocess_();
        void relatedprocess_( const SdaiIfcprocess_ptr x );

        SdaiIfclagtime_ptr_c timelag_() const;
        SdaiIfclagtime_ptr   timelag_();
        void timelag_( const SdaiIfclagtime_ptr x );

  const SdaiIfcsequenceenum_var   sequencetype_() const;
        SdaiIfcsequenceenum_var   sequencetype_();
        void sequencetype_( const SdaiIfcsequenceenum_var x );

  const SdaiIfclabel   userdefinedsequencetype_() const;
        SdaiIfclabel   userdefinedsequencetype_();
        void userdefinedsequencetype_( const SdaiIfclabel x );

};

inline SdaiIfcrelsequence * create_SdaiIfcrelsequence() {
    return new SdaiIfcrelsequence;
}

void init_SdaiIfcrelsequence(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcrelsequence;
    extern AttrDescriptor *a_471relatingprocess;
    extern AttrDescriptor *a_472relatedprocess;
    extern AttrDescriptor *a_473timelag;
    extern AttrDescriptor *a_474sequencetype;
    extern AttrDescriptor *a_475userdefinedsequencetype;
}

#endif
