#ifndef  ENTITY_SDAIIFCSURFACECURVESWEPTAREASOLID_H
#define  ENTITY_SDAIIFCSURFACECURVESWEPTAREASOLID_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 SdaiIfcsurfacecurvesweptareasolid : public SdaiIfcsweptareasolid {
     protected:
        SDAI_Application_instance_ptr _directrix = NULL;
        SDAI_Real _startparam = 0.0;    //  OPTIONAL
        SDAI_Real _endparam = 0.0;    //  OPTIONAL
        SDAI_Application_instance_ptr _referencesurface = NULL;
    public: 
        SdaiIfcsurfacecurvesweptareasolid();
        SdaiIfcsurfacecurvesweptareasolid( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcsurfacecurvesweptareasolid( SdaiIfcsurfacecurvesweptareasolid & e );
        ~SdaiIfcsurfacecurvesweptareasolid();
        int opcode() {
            return 494;
        }
        SdaiIfccurve_ptr_c directrix_() const;
        SdaiIfccurve_ptr   directrix_();
        void directrix_( const SdaiIfccurve_ptr x );

        SdaiIfcparametervalue   startparam_() const;
        void startparam_( const SdaiIfcparametervalue x );

        SdaiIfcparametervalue   endparam_() const;
        void endparam_( const SdaiIfcparametervalue x );

        SdaiIfcsurface_ptr_c referencesurface_() const;
        SdaiIfcsurface_ptr   referencesurface_();
        void referencesurface_( const SdaiIfcsurface_ptr x );

};

inline SdaiIfcsurfacecurvesweptareasolid * create_SdaiIfcsurfacecurvesweptareasolid() {
    return new SdaiIfcsurfacecurvesweptareasolid;
}

void init_SdaiIfcsurfacecurvesweptareasolid(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcsurfacecurvesweptareasolid;
    extern AttrDescriptor *a_1087directrix;
    extern AttrDescriptor *a_1088startparam;
    extern AttrDescriptor *a_1089endparam;
    extern AttrDescriptor *a_1090referencesurface;
}

#endif
