#ifndef  TYPE_SDAIDRAUGHTING_MODEL_ITEM_DEFINITION_H
#define  TYPE_SDAIDRAUGHTING_MODEL_ITEM_DEFINITION_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.


//////////  SELECT TYPE SdaiDraughting_model_item_definition
class SC_SCHEMA_EXPORT SdaiDraughting_model_item_definition  :  public SDAI_Select {
  protected:
    //  types in SELECT 
    //   APPLIED_ACTION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_ACTION_METHOD_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_ACTION_REQUEST_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_APPROVAL_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_CERTIFICATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_CLASSIFICATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_CONTRACT_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_DATE_AND_TIME_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_DATE_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_DOCUMENT_REFERENCE    --  sdaiINSTANCE
    //   APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_EFFECTIVITY_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_EVENT_OCCURRENCE_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_GROUP_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_IDENTIFICATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_INEFFECTIVITY_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_NAME_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_ORGANIZATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_ORGANIZATIONAL_PROJECT_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_TIME_INTERVAL_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_USAGE_RIGHT    --  sdaiINSTANCE
    //   DIMENSIONAL_SIZE    --  sdaiINSTANCE
    //   GEOMETRIC_TOLERANCE    --  sdaiINSTANCE
    //   PRODUCT_DEFINITION_RELATIONSHIP    --  sdaiINSTANCE
    //   PRODUCT_DEFINITION_SHAPE    --  sdaiINSTANCE
    //   PROPERTY_DEFINITION    --  sdaiINSTANCE
    //   SHAPE_ASPECT    --  sdaiINSTANCE
    //   SHAPE_ASPECT_RELATIONSHIP    --  sdaiINSTANCE
       SDAI_Application_instance_ptr _app_inst;

  public:
    virtual const TypeDescriptor * AssignEntity (SDAI_Application_instance * se);
    virtual SDAI_Select * NewSelect ();

    virtual BASE_TYPE ValueType() const;


// STEP Part 21
    virtual void STEPwrite_content (ostream& out =std::cout,
                    const char *currSch =0) const;
    virtual void STEPwrite_verbose (ostream& out =std::cout,
                    const char *currSch =0) const;
    virtual Severity STEPread_content (istream& in =cin,
        InstMgrBase * instances =0, const char *utype =0,
        int addFileId =0, const char *currSch =0);
    virtual Severity StrToVal_content (const char *,
        InstMgrBase * instances =0);

// STEP Part 22:  SDAI

// constructors
    SdaiDraughting_model_item_definition( const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    //  part 1
    SdaiDraughting_model_item_definition( const SdaiApplied_action_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_action_method_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_action_request_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_approval_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_certification_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_classification_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_contract_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_date_and_time_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_date_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_document_reference_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_document_usage_constraint_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_effectivity_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_event_occurrence_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_external_identification_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_group_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_identification_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_ineffectivity_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_name_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_organization_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_organizational_project_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_person_and_organization_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_security_classification_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_time_interval_assignment_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiApplied_usage_right_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiDimensional_size_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiGeometric_tolerance_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiProduct_definition_relationship_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiProduct_definition_shape_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiProperty_definition_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiShape_aspect_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    SdaiDraughting_model_item_definition( const SdaiShape_aspect_relationship_ptr&,
                                          const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    virtual ~SdaiDraughting_model_item_definition();

    //  part 2
    operator SdaiApplied_action_assignment_ptr();
    operator SdaiApplied_action_method_assignment_ptr();
    operator SdaiApplied_action_request_assignment_ptr();
    operator SdaiApplied_approval_assignment_ptr();
    operator SdaiApplied_certification_assignment_ptr();
    operator SdaiApplied_classification_assignment_ptr();
    operator SdaiApplied_contract_assignment_ptr();
    operator SdaiApplied_date_and_time_assignment_ptr();
    operator SdaiApplied_date_assignment_ptr();
    operator SdaiApplied_document_reference_ptr();
    operator SdaiApplied_document_usage_constraint_assignment_ptr();
    operator SdaiApplied_effectivity_assignment_ptr();
    operator SdaiApplied_event_occurrence_assignment_ptr();
    operator SdaiApplied_external_identification_assignment_ptr();
    operator SdaiApplied_group_assignment_ptr();
    operator SdaiApplied_identification_assignment_ptr();
    operator SdaiApplied_ineffectivity_assignment_ptr();
    operator SdaiApplied_name_assignment_ptr();
    operator SdaiApplied_organization_assignment_ptr();
    operator SdaiApplied_organizational_project_assignment_ptr();
    operator SdaiApplied_person_and_organization_assignment_ptr();
    operator SdaiApplied_security_classification_assignment_ptr();
    operator SdaiApplied_time_interval_assignment_ptr();
    operator SdaiApplied_usage_right_ptr();
    operator SdaiDimensional_size_ptr();
    operator SdaiGeometric_tolerance_ptr();
    operator SdaiProduct_definition_relationship_ptr();
    operator SdaiProduct_definition_shape_ptr();
    operator SdaiProperty_definition_ptr();
    operator SdaiShape_aspect_ptr();
    operator SdaiShape_aspect_relationship_ptr();

    //  part 3
        SdaiShape_aspect_ptr_c related_shape_aspect_() const;
        SdaiShape_aspect_ptr   related_shape_aspect_();
        void related_shape_aspect_( const SdaiShape_aspect_ptr x );

        SdaiShape_aspect_ptr_c relating_shape_aspect_() const;
        SdaiShape_aspect_ptr   relating_shape_aspect_();
        void relating_shape_aspect_( const SdaiShape_aspect_ptr x );

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

        SdaiProduct_definition_shape_ptr_c of_shape_() const;
        SdaiProduct_definition_shape_ptr   of_shape_();
        void of_shape_( const SdaiProduct_definition_shape_ptr x );

        SdaiCharacterized_definition_ptr_c definition_() const;
        SdaiCharacterized_definition_ptr   definition_();
        void definition_( const SdaiCharacterized_definition_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 );

        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 );

        SdaiGeometric_tolerance_target_ptr_c toleranced_shape_aspect_() const;
        SdaiGeometric_tolerance_target_ptr   toleranced_shape_aspect_();
        void toleranced_shape_aspect_( const SdaiGeometric_tolerance_target_ptr x );

        SdaiLength_measure_with_unit_ptr_c magnitude_() const;
        SdaiLength_measure_with_unit_ptr   magnitude_();
        void magnitude_( const SdaiLength_measure_with_unit_ptr x );

  const SdaiText   description_() const;
        SdaiText   description_();
        void description_( const SdaiText x );

  const SdaiLabel   name_() const;
        SdaiLabel   name_();
        void name_( const SdaiLabel x );

        SdaiShape_aspect_ptr_c applies_to_() const;
        SdaiShape_aspect_ptr   applies_to_();
        void applies_to_( const SdaiShape_aspect_ptr x );

        SdaiIr_usage_item_agg_ptr_c applied_action_assignment_items_() const;
        SdaiIr_usage_item_agg_ptr   applied_action_assignment_items_();
        void applied_action_assignment_items_( const SdaiIr_usage_item_agg_ptr x );

        SdaiTime_interval_ptr_c assigned_time_interval_() const;
        SdaiTime_interval_ptr   assigned_time_interval_();
        void assigned_time_interval_( const SdaiTime_interval_ptr x );

        SdaiSecurity_classification_ptr_c assigned_security_classification_() const;
        SdaiSecurity_classification_ptr   assigned_security_classification_();
        void assigned_security_classification_( const SdaiSecurity_classification_ptr x );

        SdaiPerson_and_organization_ptr_c assigned_person_and_organization_() const;
        SdaiPerson_and_organization_ptr   assigned_person_and_organization_();
        void assigned_person_and_organization_( const SdaiPerson_and_organization_ptr x );

        SdaiOrganizational_project_ptr_c assigned_organizational_project_() const;
        SdaiOrganizational_project_ptr   assigned_organizational_project_();
        void assigned_organizational_project_( const SdaiOrganizational_project_ptr x );

        SdaiOrganization_ptr_c assigned_organization_() const;
        SdaiOrganization_ptr   assigned_organization_();
        void assigned_organization_( const SdaiOrganization_ptr x );

        SdaiName_item_ptr_c item_() const;
        SdaiName_item_ptr   item_();
        void item_( const SdaiName_item_ptr x );

  const SdaiLabel   assigned_name_() const;
        SdaiLabel   assigned_name_();
        void assigned_name_( const SdaiLabel x );

        SdaiGroup_ptr_c assigned_group_() const;
        SdaiGroup_ptr   assigned_group_();
        void assigned_group_( const SdaiGroup_ptr x );

  const SdaiIdentifier   assigned_id_() const;
        SdaiIdentifier   assigned_id_();
        void assigned_id_( const SdaiIdentifier x );

        SdaiEvent_occurrence_ptr_c assigned_event_occurrence_() const;
        SdaiEvent_occurrence_ptr   assigned_event_occurrence_();
        void assigned_event_occurrence_( const SdaiEvent_occurrence_ptr x );

        SdaiEffectivity_ptr_c assigned_effectivity_() const;
        SdaiEffectivity_ptr   assigned_effectivity_();
        void assigned_effectivity_( const SdaiEffectivity_ptr x );

        SdaiDocument_usage_constraint_ptr_c assigned_document_usage_() const;
        SdaiDocument_usage_constraint_ptr   assigned_document_usage_();
        void assigned_document_usage_( const SdaiDocument_usage_constraint_ptr x );

  const SdaiLabel   source_() const;
        SdaiLabel   source_();
        void source_( const SdaiLabel x );

        SdaiDocument_ptr_c assigned_document_() const;
        SdaiDocument_ptr   assigned_document_();
        void assigned_document_( const SdaiDocument_ptr x );

        SdaiDate_ptr_c assigned_date_() const;
        SdaiDate_ptr   assigned_date_();
        void assigned_date_( const SdaiDate_ptr x );

        SdaiDate_and_time_ptr_c assigned_date_and_time_() const;
        SdaiDate_and_time_ptr   assigned_date_and_time_();
        void assigned_date_and_time_( const SdaiDate_and_time_ptr x );

        SdaiContract_ptr_c assigned_contract_() const;
        SdaiContract_ptr   assigned_contract_();
        void assigned_contract_( const SdaiContract_ptr x );

        SdaiGroup_ptr_c assigned_class_() const;
        SdaiGroup_ptr   assigned_class_();
        void assigned_class_( const SdaiGroup_ptr x );

        SdaiCertification_ptr_c assigned_certification_() const;
        SdaiCertification_ptr   assigned_certification_();
        void assigned_certification_( const SdaiCertification_ptr x );

        SdaiApproval_ptr_c assigned_approval_() const;
        SdaiApproval_ptr   assigned_approval_();
        void assigned_approval_( const SdaiApproval_ptr x );

        SdaiVersioned_action_request_ptr_c assigned_action_request_() const;
        SdaiVersioned_action_request_ptr   assigned_action_request_();
        void assigned_action_request_( const SdaiVersioned_action_request_ptr x );

        SdaiAction_method_ptr_c assigned_action_method_() const;
        SdaiAction_method_ptr   assigned_action_method_();
        void assigned_action_method_( const SdaiAction_method_ptr x );

        SdaiAction_items_agg_ptr_c items_() const;
        SdaiAction_items_agg_ptr   items_();
        void items_( const SdaiAction_items_agg_ptr x );

        SdaiAction_ptr_c assigned_action_() const;
        SdaiAction_ptr   assigned_action_();
        void assigned_action_( const SdaiAction_ptr x );


    //  part 4
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_action_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_action_method_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_action_request_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_approval_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_certification_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_classification_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_contract_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_date_and_time_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_date_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_document_reference_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_document_usage_constraint_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_effectivity_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_event_occurrence_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_external_identification_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_group_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_identification_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_ineffectivity_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_name_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_organization_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_organizational_project_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_person_and_organization_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_security_classification_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_time_interval_assignment_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiApplied_usage_right_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiDimensional_size_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiGeometric_tolerance_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiProduct_definition_relationship_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiProduct_definition_shape_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiProperty_definition_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiShape_aspect_ptr& );
    SdaiDraughting_model_item_definition& operator =( const SdaiShape_aspect_relationship_ptr& );
    // not in SDAI
    SdaiDraughting_model_item_definition& ShallowCopy ( const SdaiDraughting_model_item_definition& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
    SdaiDraughting_model_item_definition& operator =( SdaiDraughting_model_item_definition * const & );
    SDAI_Select& operator =( const SDAI_Select& );
#endif

    //  part 5
    Logical IsApplied_action_assignment() const;
    Logical IsApplied_action_method_assignment() const;
    Logical IsApplied_action_request_assignment() const;
    Logical IsApplied_approval_assignment() const;
    Logical IsApplied_certification_assignment() const;
    Logical IsApplied_classification_assignment() const;
    Logical IsApplied_contract_assignment() const;
    Logical IsApplied_date_and_time_assignment() const;
    Logical IsApplied_date_assignment() const;
    Logical IsApplied_document_reference() const;
    Logical IsApplied_document_usage_constraint_assignment() const;
    Logical IsApplied_effectivity_assignment() const;
    Logical IsApplied_event_occurrence_assignment() const;
    Logical IsApplied_external_identification_assignment() const;
    Logical IsApplied_group_assignment() const;
    Logical IsApplied_identification_assignment() const;
    Logical IsApplied_ineffectivity_assignment() const;
    Logical IsApplied_name_assignment() const;
    Logical IsApplied_organization_assignment() const;
    Logical IsApplied_organizational_project_assignment() const;
    Logical IsApplied_person_and_organization_assignment() const;
    Logical IsApplied_security_classification_assignment() const;
    Logical IsApplied_time_interval_assignment() const;
    Logical IsApplied_usage_right() const;
    Logical IsDimensional_size() const;
    Logical IsGeometric_tolerance() const;
    Logical IsProduct_definition_relationship() const;
    Logical IsProduct_definition_shape() const;
    Logical IsProperty_definition() const;
    Logical IsShape_aspect() const;
    Logical IsShape_aspect_relationship() const;

    //  part 6 ... UnderlyingTypeName () implemented in SDAI_Select class ...

    //  part 7 ... NONE    only for complex selects...
};

inline SDAI_Select * create_SdaiDraughting_model_item_definition () { return new SdaiDraughting_model_item_definition; }
typedef SdaiDraughting_model_item_definition * SdaiDraughting_model_item_definitionH;
typedef SdaiDraughting_model_item_definition_ptr SdaiDraughting_model_item_definition_var;


class SdaiDraughting_model_item_definition_agg : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiDraughting_model_item_definition_agg( SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_draughting_model_item_definition );
    ~SdaiDraughting_model_item_definition_agg();
    virtual SingleLinkNode * NewNode()
     { return new SelectNode (new SdaiDraughting_model_item_definition( sel_type )); }
};
inline STEPaggregate * create_SdaiDraughting_model_item_definition_agg () { return new SdaiDraughting_model_item_definition_agg; }
typedef SdaiDraughting_model_item_definition_agg_ptr SdaiDraughting_model_item_definition_agg_var;

/////  END SELECT TYPE draughting_model_item_definition

void init_SdaiDraughting_model_item_definition(Registry& reg);

#endif
