#ifndef  TYPE_SDAIEXTERNAL_IDENTIFICATION_ITEM_H
#define  TYPE_SDAIEXTERNAL_IDENTIFICATION_ITEM_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 SdaiExternal_identification_item
class SC_SCHEMA_EXPORT SdaiExternal_identification_item  :  public SDAI_Select {
  protected:
    //  types in SELECT 
    //   ACTION_RELATIONSHIP    --  sdaiINSTANCE
    //   ACTION_REQUEST_STATUS    --  sdaiINSTANCE
    //   APPLIED_ORGANIZATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT    --  sdaiINSTANCE
    //   APPROVAL    --  sdaiINSTANCE
    //   APPROVAL_STATUS    --  sdaiINSTANCE
    //   ASSEMBLY_BOND_DEFINITION    --  sdaiINSTANCE
    //   ASSEMBLY_COMPONENT    --  sdaiINSTANCE
    //   COMPOSITE_SIGNAL_PROPERTY_RELATIONSHIP    --  sdaiINSTANCE
    //   DATE_AND_TIME_ASSIGNMENT    --  sdaiINSTANCE
    //   DATE_ASSIGNMENT    --  sdaiINSTANCE
    //   DIGITAL_ANALYTICAL_MODEL_VECTOR_PORT    --  sdaiINSTANCE
    //   DOCUMENT_FILE    --  sdaiINSTANCE
    //   EXTERNAL_SOURCE    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_CLASS    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_CONTEXT_DEPENDENT_UNIT    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_CONVERSION_BASED_UNIT    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_GENERAL_PROPERTY    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_PHYSICAL_NETWORK_GROUP    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_PHYSICAL_NETWORK_GROUP_ELEMENT_RELATIONSHIP    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_PICTURE_REPRESENTATION_ITEM    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_PRODUCT_DEFINITION    --  sdaiINSTANCE
    //   EXTERNALLY_DEFINED_REPRESENTATION_ITEM    --  sdaiINSTANCE
    //   FUNCTIONAL_SPECIFICATION    --  sdaiINSTANCE
    //   LAND_PHYSICAL_TEMPLATE    --  sdaiINSTANCE
    //   ORGANIZATIONAL_ADDRESS    --  sdaiINSTANCE
    //   PACKAGE    --  sdaiINSTANCE
    //   PACKAGE_TERMINAL_TEMPLATE_DEFINITION    --  sdaiINSTANCE
    //   PRINTED_COMPONENT    --  sdaiINSTANCE
    //   PRODUCT_DEFINITION    --  sdaiINSTANCE
    //   PROPERTY_DEFINITION    --  sdaiINSTANCE
    //   SECURITY_CLASSIFICATION    --  sdaiINSTANCE
    //   SHAPE_DIMENSION_REPRESENTATION    --  sdaiINSTANCE
    //   SHAPE_REPRESENTATION    --  sdaiINSTANCE
    //   SIGNAL    --  sdaiINSTANCE
    //   STRATUM    --  sdaiINSTANCE
    //   STRATUM_FEATURE_BASED_DERIVED_PATTERN    --  sdaiINSTANCE
    //   STRATUM_TECHNOLOGY    --  sdaiINSTANCE
    //   TRIMMED_CURVE    --  sdaiINSTANCE
    //   VERSIONED_ACTION_REQUEST    --  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
    SdaiExternal_identification_item( const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    //  part 1
    SdaiExternal_identification_item( const SdaiAction_relationship_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiAction_request_status_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiApplied_organization_assignment_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiApplied_person_and_organization_assignment_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiApproval_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiApproval_status_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiAssembly_bond_definition_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiAssembly_component_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiComposite_signal_property_relationship_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiDate_and_time_assignment_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiDate_assignment_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiDigital_analytical_model_vector_port_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiDocument_file_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternal_source_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_class_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_context_dependent_unit_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_conversion_based_unit_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_general_property_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_physical_network_group_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_physical_network_group_element_relationship_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_picture_representation_item_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_product_definition_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiExternally_defined_representation_item_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiFunctional_specification_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiLand_physical_template_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiOrganizational_address_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiPackage_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiPackage_terminal_template_definition_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiPrinted_component_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiProduct_definition_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiProperty_definition_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiSecurity_classification_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiShape_dimension_representation_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiShape_representation_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiSignal_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiStratum_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiStratum_feature_based_derived_pattern_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiStratum_technology_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiTrimmed_curve_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    SdaiExternal_identification_item( const SdaiVersioned_action_request_ptr&,
                                      const SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    virtual ~SdaiExternal_identification_item();

    //  part 2
    operator SdaiAction_relationship_ptr();
    operator SdaiAction_request_status_ptr();
    operator SdaiApplied_organization_assignment_ptr();
    operator SdaiApplied_person_and_organization_assignment_ptr();
    operator SdaiApproval_ptr();
    operator SdaiApproval_status_ptr();
    operator SdaiAssembly_bond_definition_ptr();
    operator SdaiAssembly_component_ptr();
    operator SdaiComposite_signal_property_relationship_ptr();
    operator SdaiDate_and_time_assignment_ptr();
    operator SdaiDate_assignment_ptr();
    operator SdaiDigital_analytical_model_vector_port_ptr();
    operator SdaiDocument_file_ptr();
    operator SdaiExternal_source_ptr();
    operator SdaiExternally_defined_class_ptr();
    operator SdaiExternally_defined_context_dependent_unit_ptr();
    operator SdaiExternally_defined_conversion_based_unit_ptr();
    operator SdaiExternally_defined_general_property_ptr();
    operator SdaiExternally_defined_physical_network_group_ptr();
    operator SdaiExternally_defined_physical_network_group_element_relationship_ptr();
    operator SdaiExternally_defined_picture_representation_item_ptr();
    operator SdaiExternally_defined_product_definition_ptr();
    operator SdaiExternally_defined_representation_item_ptr();
    operator SdaiFunctional_specification_ptr();
    operator SdaiLand_physical_template_ptr();
    operator SdaiOrganizational_address_ptr();
    operator SdaiPackage_ptr();
    operator SdaiPackage_terminal_template_definition_ptr();
    operator SdaiPrinted_component_ptr();
    operator SdaiProduct_definition_ptr();
    operator SdaiProperty_definition_ptr();
    operator SdaiSecurity_classification_ptr();
    operator SdaiShape_dimension_representation_ptr();
    operator SdaiShape_representation_ptr();
    operator SdaiSignal_ptr();
    operator SdaiStratum_ptr();
    operator SdaiStratum_feature_based_derived_pattern_ptr();
    operator SdaiStratum_technology_ptr();
    operator SdaiTrimmed_curve_ptr();
    operator SdaiVersioned_action_request_ptr();

    //  part 3
  const SdaiLabel   version_() const;
        SdaiLabel   version_();
        void version_( const SdaiLabel x );

  const SdaiTrimming_preference_var   master_representation_() const;
        SdaiTrimming_preference_var   master_representation_();
        void master_representation_( const SdaiTrimming_preference_var x );

        Boolean   sense_agreement_() const;
        void sense_agreement_( const Boolean x );

        SdaiTrimming_select_agg_ptr_c trim_2_() const;
        SdaiTrimming_select_agg_ptr   trim_2_();
        void trim_2_( const SdaiTrimming_select_agg_ptr x );

        SdaiTrimming_select_agg_ptr_c trim_1_() const;
        SdaiTrimming_select_agg_ptr   trim_1_();
        void trim_1_( const SdaiTrimming_select_agg_ptr x );

        SdaiCurve_ptr_c basis_curve_() const;
        SdaiCurve_ptr   basis_curve_();
        void basis_curve_( const SdaiCurve_ptr x );

        SdaiSecurity_classification_level_ptr_c security_level_() const;
        SdaiSecurity_classification_level_ptr   security_level_();
        void security_level_( const SdaiSecurity_classification_level_ptr x );

  const SdaiText   purpose_() const;
        SdaiText   purpose_();
        void purpose_( const SdaiText x );

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

  const SdaiLabel   telex_number_() const;
        SdaiLabel   telex_number_();
        void telex_number_( const SdaiLabel x );

  const SdaiLabel   electronic_mail_address_() const;
        SdaiLabel   electronic_mail_address_();
        void electronic_mail_address_( const SdaiLabel x );

  const SdaiLabel   telephone_number_() const;
        SdaiLabel   telephone_number_();
        void telephone_number_( const SdaiLabel x );

  const SdaiLabel   facsimile_number_() const;
        SdaiLabel   facsimile_number_();
        void facsimile_number_( const SdaiLabel x );

  const SdaiLabel   country_() const;
        SdaiLabel   country_();
        void country_( const SdaiLabel x );

  const SdaiLabel   postal_code_() const;
        SdaiLabel   postal_code_();
        void postal_code_( const SdaiLabel x );

  const SdaiLabel   region_() const;
        SdaiLabel   region_();
        void region_( const SdaiLabel x );

  const SdaiLabel   town_() const;
        SdaiLabel   town_();
        void town_( const SdaiLabel x );

  const SdaiLabel   postal_box_() const;
        SdaiLabel   postal_box_();
        void postal_box_( const SdaiLabel x );

  const SdaiLabel   street_() const;
        SdaiLabel   street_();
        void street_( const SdaiLabel x );

  const SdaiLabel   street_number_() const;
        SdaiLabel   street_number_();
        void street_number_( const SdaiLabel x );

  const SdaiLabel   internal_location_() const;
        SdaiLabel   internal_location_();
        void internal_location_( const SdaiLabel x );

  const SDAI_Binary   binary_value_() const;
        SDAI_Binary   binary_value_();
        void binary_value_( const SDAI_Binary x );

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

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

        SdaiMeasure_with_unit_ptr_c conversion_factor_() const;
        SdaiMeasure_with_unit_ptr   conversion_factor_();
        void conversion_factor_( const SdaiMeasure_with_unit_ptr x );

        SdaiDimensional_exponents_ptr_c dimensions_() const;
        SdaiDimensional_exponents_ptr   dimensions_();
        void dimensions_( const SdaiDimensional_exponents_ptr x );

        SdaiExternal_source_ptr_c source_() const;
        SdaiExternal_source_ptr   source_();
        void source_( const SdaiExternal_source_ptr x );

        SdaiSource_item_ptr_c item_id_() const;
        SdaiSource_item_ptr   item_id_();
        void item_id_( const SdaiSource_item_ptr x );

        SdaiSource_item_ptr_c source_id_() const;
        SdaiSource_item_ptr   source_id_();
        void source_id_( const SdaiSource_item_ptr x );

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

        SdaiDocument_type_ptr_c kind_() const;
        SdaiDocument_type_ptr   kind_();
        void kind_( const SdaiDocument_type_ptr x );

        SdaiCompound_item_definition_ptr_c item_element_() const;
        SdaiCompound_item_definition_ptr   item_element_();
        void item_element_( const SdaiCompound_item_definition_ptr x );

        SdaiRepresentation_context_ptr_c context_of_items_() const;
        SdaiRepresentation_context_ptr   context_of_items_();
        void context_of_items_( const SdaiRepresentation_context_ptr x );

        SdaiRepresentation_ptr_c used_representation_() const;
        SdaiRepresentation_ptr   used_representation_();
        void used_representation_( const SdaiRepresentation_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 );

        SdaiProperty_definition_ptr_c related_property_definition_() const;
        SdaiProperty_definition_ptr   related_property_definition_();
        void related_property_definition_( const SdaiProperty_definition_ptr x );

        SdaiProperty_definition_ptr_c relating_property_definition_() const;
        SdaiProperty_definition_ptr   relating_property_definition_();
        void relating_property_definition_( const SdaiProperty_definition_ptr x );

        SdaiCharacterized_definition_ptr_c definition_() const;
        SdaiCharacterized_definition_ptr   definition_();
        void definition_( const SdaiCharacterized_definition_ptr x );

        SdaiProduct_definition_ptr_c related_product_definition_() const;
        SdaiProduct_definition_ptr   related_product_definition_();
        void related_product_definition_( const SdaiProduct_definition_ptr x );

        SdaiProduct_definition_ptr_c relating_product_definition_() const;
        SdaiProduct_definition_ptr   relating_product_definition_();
        void relating_product_definition_( const SdaiProduct_definition_ptr x );

        SdaiProduct_definition_context_ptr_c frame_of_reference_() const;
        SdaiProduct_definition_context_ptr   frame_of_reference_();
        void frame_of_reference_( const SdaiProduct_definition_context_ptr x );

        SdaiProduct_definition_formation_ptr_c formation_() const;
        SdaiProduct_definition_formation_ptr   formation_();
        void formation_( const SdaiProduct_definition_formation_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 );

  const SdaiLabel   level_() const;
        SdaiLabel   level_();
        void level_( const SdaiLabel 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 );

        SdaiOrganization_item_agg_ptr_c items_() const;
        SdaiOrganization_item_agg_ptr   items_();
        void items_( const SdaiOrganization_item_agg_ptr x );

        SdaiOrganization_role_ptr_c role_() const;
        SdaiOrganization_role_ptr   role_();
        void role_( const SdaiOrganization_role_ptr x );

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

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

  const SdaiLabel   status_() const;
        SdaiLabel   status_();
        void status_( const SdaiLabel x );

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

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

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

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


    //  part 4
    SdaiExternal_identification_item& operator =( const SdaiAction_relationship_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiAction_request_status_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiApplied_organization_assignment_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiApplied_person_and_organization_assignment_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiApproval_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiApproval_status_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiAssembly_bond_definition_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiAssembly_component_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiComposite_signal_property_relationship_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiDate_and_time_assignment_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiDate_assignment_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiDigital_analytical_model_vector_port_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiDocument_file_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternal_source_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_class_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_context_dependent_unit_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_conversion_based_unit_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_general_property_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_physical_network_group_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_physical_network_group_element_relationship_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_picture_representation_item_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_product_definition_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiExternally_defined_representation_item_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiFunctional_specification_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiLand_physical_template_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiOrganizational_address_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiPackage_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiPackage_terminal_template_definition_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiPrinted_component_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiProduct_definition_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiProperty_definition_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiSecurity_classification_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiShape_dimension_representation_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiShape_representation_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiSignal_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiStratum_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiStratum_feature_based_derived_pattern_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiStratum_technology_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiTrimmed_curve_ptr& );
    SdaiExternal_identification_item& operator =( const SdaiVersioned_action_request_ptr& );
    // not in SDAI
    SdaiExternal_identification_item& ShallowCopy ( const SdaiExternal_identification_item& );

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

    //  part 5
    Logical IsAction_relationship() const;
    Logical IsAction_request_status() const;
    Logical IsApplied_organization_assignment() const;
    Logical IsApplied_person_and_organization_assignment() const;
    Logical IsApproval() const;
    Logical IsApproval_status() const;
    Logical IsAssembly_bond_definition() const;
    Logical IsAssembly_component() const;
    Logical IsComposite_signal_property_relationship() const;
    Logical IsDate_and_time_assignment() const;
    Logical IsDate_assignment() const;
    Logical IsDigital_analytical_model_vector_port() const;
    Logical IsDocument_file() const;
    Logical IsExternal_source() const;
    Logical IsExternally_defined_class() const;
    Logical IsExternally_defined_context_dependent_unit() const;
    Logical IsExternally_defined_conversion_based_unit() const;
    Logical IsExternally_defined_general_property() const;
    Logical IsExternally_defined_physical_network_group() const;
    Logical IsExternally_defined_physical_network_group_element_relationship() const;
    Logical IsExternally_defined_picture_representation_item() const;
    Logical IsExternally_defined_product_definition() const;
    Logical IsExternally_defined_representation_item() const;
    Logical IsFunctional_specification() const;
    Logical IsLand_physical_template() const;
    Logical IsOrganizational_address() const;
    Logical IsPackage() const;
    Logical IsPackage_terminal_template_definition() const;
    Logical IsPrinted_component() const;
    Logical IsProduct_definition() const;
    Logical IsProperty_definition() const;
    Logical IsSecurity_classification() const;
    Logical IsShape_dimension_representation() const;
    Logical IsShape_representation() const;
    Logical IsSignal() const;
    Logical IsStratum() const;
    Logical IsStratum_feature_based_derived_pattern() const;
    Logical IsStratum_technology() const;
    Logical IsTrimmed_curve() const;
    Logical IsVersioned_action_request() const;

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

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

inline SDAI_Select * create_SdaiExternal_identification_item () { return new SdaiExternal_identification_item; }
typedef SdaiExternal_identification_item * SdaiExternal_identification_itemH;
typedef SdaiExternal_identification_item_ptr SdaiExternal_identification_item_var;


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

  public:
    SdaiExternal_identification_item_agg( SelectTypeDescriptor * =ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf::t_external_identification_item );
    ~SdaiExternal_identification_item_agg();
    virtual SingleLinkNode * NewNode()
     { return new SelectNode (new SdaiExternal_identification_item( sel_type )); }
};
inline STEPaggregate * create_SdaiExternal_identification_item_agg () { return new SdaiExternal_identification_item_agg; }
typedef SdaiExternal_identification_item_agg_ptr SdaiExternal_identification_item_agg_var;

/////  END SELECT TYPE external_identification_item

void init_SdaiExternal_identification_item(Registry& reg);

#endif
