#ifndef  ENTITY_SDAIMATED_PART_RELATIONSHIP_H
#define  ENTITY_SDAIMATED_PART_RELATIONSHIP_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 SdaiMated_part_relationship : public SdaiGroup {
     protected:
        EntityAggregate_ptr _items = NULL;          //  of  product_definition

        SdaiProduct_definition_or_reference _relating_product_definition;
        SdaiProduct_definition_or_reference _related_product_definition;
        SDAI_LOGICAL _product_definitional;
    public: 
        SdaiMated_part_relationship();
        SdaiMated_part_relationship( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiMated_part_relationship( SdaiMated_part_relationship & e );
        ~SdaiMated_part_relationship();
        int opcode() {
            return 893;
        }
        EntityAggregate_ptr_c items_() const;
        EntityAggregate_ptr   items_();
        void items_( const EntityAggregate_ptr x );

        SdaiProduct_definition_or_reference_ptr_c relating_product_definition_() const;
        SdaiProduct_definition_or_reference_ptr   relating_product_definition_();
        void relating_product_definition_( const SdaiProduct_definition_or_reference_ptr x );

        SdaiProduct_definition_or_reference_ptr_c related_product_definition_() const;
        SdaiProduct_definition_or_reference_ptr   related_product_definition_();
        void related_product_definition_( const SdaiProduct_definition_or_reference_ptr x );

        Logical   product_definitional_() const;
        void product_definitional_( const Logical x );

};

inline SdaiMated_part_relationship * create_SdaiMated_part_relationship() {
    return new SdaiMated_part_relationship;
}

void init_SdaiMated_part_relationship(Registry& reg);

namespace ap242_managed_model_based_3d_engineering_mim_lf {
    extern EntityDescriptor *e_mated_part_relationship;
    extern AttrDescriptor *a_1148items;
    extern Derived_attribute *a_1149Dgroup_assignment_assigned_group;
    extern Derived_attribute *a_1150Dproperty_definition_definition;
    extern Derived_attribute *a_1151Dshape_aspect_of_shape;
}

#endif
