#ifndef  ENTITY_SDAIIFCMATERIALLAYERSETUSAGE_H
#define  ENTITY_SDAIIFCMATERIALLAYERSETUSAGE_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 SdaiIfcmateriallayersetusage : public SdaiIfcmaterialusagedefinition {
     protected:
        SDAI_Application_instance_ptr _forlayerset = NULL;
        SdaiIfclayersetdirectionenum_var _layersetdirection;
        SdaiIfcdirectionsenseenum_var _directionsense;
        SDAI_Real _offsetfromreferenceline = 0.0;
        SDAI_Real _referenceextent = 0.0;    //  OPTIONAL
    public: 
        SdaiIfcmateriallayersetusage();
        SdaiIfcmateriallayersetusage( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcmateriallayersetusage( SdaiIfcmateriallayersetusage & e );
        ~SdaiIfcmateriallayersetusage();
        int opcode() {
            return 241;
        }
        SdaiIfcmateriallayerset_ptr_c forlayerset_() const;
        SdaiIfcmateriallayerset_ptr   forlayerset_();
        void forlayerset_( const SdaiIfcmateriallayerset_ptr x );

  const SdaiIfclayersetdirectionenum_var   layersetdirection_() const;
        SdaiIfclayersetdirectionenum_var   layersetdirection_();
        void layersetdirection_( const SdaiIfclayersetdirectionenum_var x );

  const SdaiIfcdirectionsenseenum_var   directionsense_() const;
        SdaiIfcdirectionsenseenum_var   directionsense_();
        void directionsense_( const SdaiIfcdirectionsenseenum_var x );

        SdaiIfclengthmeasure   offsetfromreferenceline_() const;
        void offsetfromreferenceline_( const SdaiIfclengthmeasure x );

        SdaiIfcpositivelengthmeasure   referenceextent_() const;
        void referenceextent_( const SdaiIfcpositivelengthmeasure x );

};

inline SdaiIfcmateriallayersetusage * create_SdaiIfcmateriallayersetusage() {
    return new SdaiIfcmateriallayersetusage;
}

void init_SdaiIfcmateriallayersetusage(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcmateriallayersetusage;
    extern AttrDescriptor *a_549forlayerset;
    extern AttrDescriptor *a_550layersetdirection;
    extern AttrDescriptor *a_551directionsense;
    extern AttrDescriptor *a_552offsetfromreferenceline;
    extern AttrDescriptor *a_553referenceextent;
}

#endif
