#ifndef  ENTITY_SDAIIFCCURVEBOUNDEDSURFACE_H
#define  ENTITY_SDAIIFCCURVEBOUNDEDSURFACE_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 SdaiIfccurveboundedsurface : public SdaiIfcboundedsurface {
     protected:
        SDAI_Application_instance_ptr _basissurface = NULL;
        EntityAggregate_ptr _boundaries = NULL;          //  of  ifcboundarycurve

        SDAI_BOOLEAN _implicitouter = false;
    public: 
        SdaiIfccurveboundedsurface();
        SdaiIfccurveboundedsurface( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfccurveboundedsurface( SdaiIfccurveboundedsurface & e );
        ~SdaiIfccurveboundedsurface();
        int opcode() {
            return 582;
        }
        SdaiIfcsurface_ptr_c basissurface_() const;
        SdaiIfcsurface_ptr   basissurface_();
        void basissurface_( const SdaiIfcsurface_ptr x );

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

        Boolean   implicitouter_() const;
        void implicitouter_( const Boolean x );

};

inline SdaiIfccurveboundedsurface * create_SdaiIfccurveboundedsurface() {
    return new SdaiIfccurveboundedsurface;
}

void init_SdaiIfccurveboundedsurface(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifccurveboundedsurface;
    extern AttrDescriptor *a_1296basissurface;
    extern AttrDescriptor *a_1297boundaries;
    extern AttrDescriptor *a_1298implicitouter;
}

#endif
