#ifndef  TYPE_SDAISTRING_SELECT_H
#define  TYPE_SDAISTRING_SELECT_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 SdaiString_select
class SC_SCHEMA_EXPORT SdaiString_select  :  public SDAI_Select {
  protected:
    //  types in SELECT 
    //   ACTIVITY    --  sdaiINSTANCE
    //   ACTIVITY_METHOD    --  sdaiINSTANCE
    //   ACTIVITY_METHOD_ASSIGNMENT    --  sdaiINSTANCE
    //   ACTIVITY_METHOD_REALIZATION    --  sdaiINSTANCE
    //   ACTIVITY_METHOD_REALIZATION_RELATIONSHIP    --  sdaiINSTANCE
    //   ACTIVITY_METHOD_RELATIONSHIP    --  sdaiINSTANCE
    //   ACTIVITY_PROPERTY    --  sdaiINSTANCE
    //   ACTIVITY_RELATIONSHIP    --  sdaiINSTANCE
    //   ALTERNATE_PART_RELATIONSHIP    --  sdaiINSTANCE
    //   APPLIED_ACTIVITY_ASSIGNMENT    --  sdaiINSTANCE
    //   APPLIED_ACTIVITY_METHOD_ASSIGNMENT    --  sdaiINSTANCE
    //   APPROVAL    --  sdaiINSTANCE
    //   APPROVAL_RELATIONSHIP    --  sdaiINSTANCE
    //   APPROVAL_STATUS    --  sdaiINSTANCE
    //   ASSEMBLY_COMPONENT_RELATIONSHIP    --  sdaiINSTANCE
    //   ASSEMBLY_RELATIONSHIP_SUBSTITUTION    --  sdaiINSTANCE
    //   ASSIGNED_PROPERTY    --  sdaiINSTANCE
    //   ATTACHMENT_SLOT    --  sdaiINSTANCE
    //   ATTACHMENT_SLOT_DEFINITION    --  sdaiINSTANCE
    //   ATTACHMENT_SLOT_DESIGN_TO_PLANNED    --  sdaiINSTANCE
    //   ATTACHMENT_SLOT_DESIGN_TO_REALIZED    --  sdaiINSTANCE
    //   ATTACHMENT_SLOT_ON_PRODUCT    --  sdaiINSTANCE
    //   ATTACHMENT_SLOT_PLANNED_TO_REALIZED    --  sdaiINSTANCE
    //   ATTACHMENT_SLOT_VERSION    --  sdaiINSTANCE
    //   BREAKDOWN    --  sdaiINSTANCE
    //   BREAKDOWN_ELEMENT    --  sdaiINSTANCE
    //   BREAKDOWN_ELEMENT_REALIZATION    --  sdaiINSTANCE
    //   BREAKDOWN_ELEMENT_USAGE    --  sdaiINSTANCE
    //   BREAKDOWN_ELEMENT_VERSION    --  sdaiINSTANCE
    //   CERTIFICATION    --  sdaiINSTANCE
    //   CONDITION    --  sdaiINSTANCE
    //   CONDITION_EVALUATION    --  sdaiINSTANCE
    //   CONDITION_EVALUATION_PARAMETER    --  sdaiINSTANCE
    //   CONDITION_PARAMETER    --  sdaiINSTANCE
    //   CONDITION_RELATIONSHIP    --  sdaiINSTANCE
    //   CONTRACT    --  sdaiINSTANCE
    //   DATE_OR_DATE_TIME_ASSIGNMENT    --  sdaiINSTANCE
    //   DIGITAL_DOCUMENT_DEFINITION    --  sdaiINSTANCE
    //   DOCUMENT    --  sdaiINSTANCE
    //   DOCUMENT_ASSIGNMENT    --  sdaiINSTANCE
    //   DOCUMENT_DEFINITION_RELATIONSHIP    --  sdaiINSTANCE
    //   DOCUMENT_VERSION    --  sdaiINSTANCE
    //   ENVELOPE    --  sdaiINSTANCE
    //   ENVELOPE_RELATIONSHIP    --  sdaiINSTANCE
    //   EVENT    --  sdaiINSTANCE
    //   EXPERIENCE_GAINED    --  sdaiINSTANCE
    //   EXPERIENCE_TYPE    --  sdaiINSTANCE
    //   EXTERNAL_ITEM_IDENTIFICATION    --  sdaiINSTANCE
    //   EXTERNAL_SOURCE_IDENTIFICATION    --  sdaiINSTANCE
    //   FILE_RELATIONSHIP    --  sdaiINSTANCE
    //   GLOBAL_LOCATION_REPRESENTATION    --  sdaiINSTANCE
    //   IDENTIFICATION_ASSIGNMENT    --  sdaiINSTANCE
    //   INDEPENDENT_PROPERTY    --  sdaiINSTANCE
    //   INDEPENDENT_PROPERTY_RELATIONSHIP    --  sdaiINSTANCE
    //   INFORMATION_RIGHT    --  sdaiINSTANCE
    //   INFORMATION_USAGE_RIGHT    --  sdaiINSTANCE
    //   INTERFACE_CONNECTION    --  sdaiINSTANCE
    //   INTERFACE_CONNECTOR    --  sdaiINSTANCE
    //   INTERFACE_CONNECTOR_DEFINITION    --  sdaiINSTANCE
    //   INTERFACE_CONNECTOR_OCCURRENCE    --  sdaiINSTANCE
    //   INTERFACE_CONNECTOR_VERSION    --  sdaiINSTANCE
    //   INTERFACE_DEFINITION_CONNECTION    --  sdaiINSTANCE
    //   INTERFACE_DEFINITION_FOR    --  sdaiINSTANCE
    //   JUSTIFICATION    --  sdaiINSTANCE
    //   JUSTIFICATION_ASSIGNMENT    --  sdaiINSTANCE
    //   JUSTIFICATION_RELATIONSHIP    --  sdaiINSTANCE
    //   JUSTIFICATION_SUPPORT_ASSIGNMENT    --  sdaiINSTANCE
    //   LOCATION    --  sdaiINSTANCE
    //   LOCATION_ASSIGNMENT    --  sdaiINSTANCE
    //   LOCATION_RELATIONSHIP    --  sdaiINSTANCE
    //   MANAGED_RESOURCE    --  sdaiINSTANCE
    //   MANAGED_RESOURCE_RELATIONSHIP    --  sdaiINSTANCE
    //   MESSAGE    --  sdaiINSTANCE
    //   MESSAGE_RELATIONSHIP    --  sdaiINSTANCE
    //   OBSERVATION    --  sdaiINSTANCE
    //   OBSERVATION_CONSEQUENCE    --  sdaiINSTANCE
    //   ORGANIZATION_RELATIONSHIP    --  sdaiINSTANCE
    //   ORGANIZATION_TYPE    --  sdaiINSTANCE
    //   ORGANIZATIONAL_LOCATION_IDENTIFICATION    --  sdaiINSTANCE
    //   PART    --  sdaiINSTANCE
    //   PART_VERSION    --  sdaiINSTANCE
    //   PART_VIEW_DEFINITION    --  sdaiINSTANCE
    //   PERSON_IN_ORGANIZATION    --  sdaiINSTANCE
    //   PHYSICAL_DOCUMENT_DEFINITION    --  sdaiINSTANCE
    //   POSITION    --  sdaiINSTANCE
    //   POSITION_GROUP    --  sdaiINSTANCE
    //   POSITION_RELATIONSHIP    --  sdaiINSTANCE
    //   POSITION_ROLE    --  sdaiINSTANCE
    //   POSITION_TYPE    --  sdaiINSTANCE
    //   PRODUCT_AS_INDIVIDUAL    --  sdaiINSTANCE
    //   PRODUCT_AS_INDIVIDUAL_VERSION    --  sdaiINSTANCE
    //   PRODUCT_AS_INDIVIDUAL_VIEW    --  sdaiINSTANCE
    //   PRODUCT_BASED_LOCATION_IDENTIFICATION    --  sdaiINSTANCE
    //   PRODUCT_CATEGORY    --  sdaiINSTANCE
    //   PRODUCT_CONFIGURATION    --  sdaiINSTANCE
    //   PRODUCT_GROUP    --  sdaiINSTANCE
    //   PRODUCT_GROUP_RELATIONSHIP    --  sdaiINSTANCE
    //   PRODUCT_RELATIONSHIP    --  sdaiINSTANCE
    //   PROJECT    --  sdaiINSTANCE
    //   PROJECT_ASSIGNMENT    --  sdaiINSTANCE
    //   PROJECT_RELATIONSHIP    --  sdaiINSTANCE
    //   QUALIFICATION_TYPE    --  sdaiINSTANCE
    //   REGIONAL_COORDINATE    --  sdaiINSTANCE
    //   REGIONAL_GRID_LOCATION_REPRESENTATION    --  sdaiINSTANCE
    //   RELATED_CONDITION_PARAMETER    --  sdaiINSTANCE
    //   REPRESENTATION_ITEM    --  sdaiINSTANCE
    //   REQUIRED_RESOURCE    --  sdaiINSTANCE
    //   REQUIRED_RESOURCE_RELATIONSHIP    --  sdaiINSTANCE
    //   REQUIREMENT    --  sdaiINSTANCE
    //   REQUIREMENT_ASSIGNMENT    --  sdaiINSTANCE
    //   REQUIREMENT_COLLECTION_RELATIONSHIP    --  sdaiINSTANCE
    //   REQUIREMENT_SOURCE    --  sdaiINSTANCE
    //   REQUIREMENT_VERSION    --  sdaiINSTANCE
    //   REQUIREMENT_VERSION_RELATIONSHIP    --  sdaiINSTANCE
    //   REQUIREMENT_VIEW_DEFINITION    --  sdaiINSTANCE
    //   RESOURCE_AS_REALIZED    --  sdaiINSTANCE
    //   RESOURCE_AS_REALIZED_RELATIONSHIP    --  sdaiINSTANCE
    //   RESOURCE_EVENT    --  sdaiINSTANCE
    //   RESOURCE_EVENT_CORRESPONDENCE_RELATIONSHIP    --  sdaiINSTANCE
    //   RESOURCE_EVENT_RELATIONSHIP    --  sdaiINSTANCE
    //   RESOURCE_ITEM    --  sdaiINSTANCE
    //   RESOURCE_ITEM_ASSIGNMENT    --  sdaiINSTANCE
    //   RESOURCE_ITEM_RELATIONSHIP    --  sdaiINSTANCE
    //   RESOURCE_PROPERTY    --  sdaiINSTANCE
    //   STATE    --  sdaiINSTANCE
    //   STATE_DEFINITION    --  sdaiINSTANCE
    //   STATE_DEFINITION_RELATIONSHIP    --  sdaiINSTANCE
    //   STATE_RELATIONSHIP    --  sdaiINSTANCE
    //   TASK_ELEMENT    --  sdaiINSTANCE
    //   TASK_ELEMENT_RELATIONSHIP    --  sdaiINSTANCE
    //   TASK_METHOD    --  sdaiINSTANCE
    //   TASK_METHOD_ASSIGNMENT    --  sdaiINSTANCE
    //   TASK_METHOD_RELATIONSHIP    --  sdaiINSTANCE
    //   TASK_METHOD_VERSION    --  sdaiINSTANCE
    //   TASK_METHOD_VERSION_ASSIGNMENT    --  sdaiINSTANCE
    //   TASK_METHOD_VERSION_RELATIONSHIP    --  sdaiINSTANCE
    //   TASK_OBJECTIVE    --  sdaiINSTANCE
    //   TRACING_RELATIONSHIP    --  sdaiINSTANCE
    //   TYPE_OF_PERSON    --  sdaiINSTANCE
    //   TYPE_OF_PERSON_ASSIGNMENT    --  sdaiINSTANCE
    //   TYPE_OF_PERSON_DEFINITION    --  sdaiINSTANCE
    //   TYPE_OF_PERSON_DEFINITION_RELATIONSHIP    --  sdaiINSTANCE
    //   WORK_ORDER    --  sdaiINSTANCE
    //   WORK_OUTPUT    --  sdaiINSTANCE
    //   WORK_OUTPUT_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
    SdaiString_select( const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    //  part 1
    SdaiString_select( const SdaiActivity_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiActivity_method_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiActivity_method_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiActivity_method_realization_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiActivity_method_realization_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiActivity_method_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiActivity_property_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiActivity_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAlternate_part_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiApplied_activity_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiApplied_activity_method_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiApproval_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiApproval_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiApproval_status_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAssembly_component_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAssembly_relationship_substitution_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAssigned_property_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAttachment_slot_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAttachment_slot_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAttachment_slot_design_to_planned_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAttachment_slot_design_to_realized_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAttachment_slot_on_product_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAttachment_slot_planned_to_realized_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiAttachment_slot_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiBreakdown_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiBreakdown_element_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiBreakdown_element_realization_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiBreakdown_element_usage_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiBreakdown_element_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiCertification_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiCondition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiCondition_evaluation_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiCondition_evaluation_parameter_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiCondition_parameter_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiCondition_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiContract_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiDate_or_date_time_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiDigital_document_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiDocument_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiDocument_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiDocument_definition_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiDocument_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiEnvelope_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiEnvelope_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiEvent_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiExperience_gained_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiExperience_type_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiExternal_item_identification_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiExternal_source_identification_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiFile_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiGlobal_location_representation_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiIdentification_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiIndependent_property_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiIndependent_property_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInformation_right_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInformation_usage_right_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInterface_connection_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInterface_connector_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInterface_connector_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInterface_connector_occurrence_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInterface_connector_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInterface_definition_connection_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiInterface_definition_for_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiJustification_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiJustification_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiJustification_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiJustification_support_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiLocation_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiLocation_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiLocation_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiManaged_resource_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiManaged_resource_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiMessage_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiMessage_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiObservation_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiObservation_consequence_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiOrganization_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiOrganization_type_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiOrganizational_location_identification_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPart_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPart_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPart_view_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPerson_in_organization_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPhysical_document_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPosition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPosition_group_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPosition_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPosition_role_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiPosition_type_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_as_individual_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_as_individual_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_as_individual_view_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_based_location_identification_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_category_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_configuration_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_group_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_group_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProduct_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProject_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProject_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiProject_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiQualification_type_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRegional_coordinate_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRegional_grid_location_representation_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRelated_condition_parameter_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRepresentation_item_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequired_resource_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequired_resource_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequirement_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequirement_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequirement_collection_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequirement_source_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequirement_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequirement_version_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiRequirement_view_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_as_realized_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_as_realized_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_event_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_event_correspondence_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_event_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_item_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_item_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_item_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiResource_property_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiState_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiState_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiState_definition_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiState_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_element_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_element_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_method_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_method_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_method_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_method_version_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_method_version_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_method_version_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTask_objective_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiTracing_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiType_of_person_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiType_of_person_assignment_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiType_of_person_definition_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiType_of_person_definition_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiWork_order_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiWork_output_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    SdaiString_select( const SdaiWork_output_relationship_ptr&,
                       const SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    virtual ~SdaiString_select();

    //  part 2
    operator SdaiActivity_ptr();
    operator SdaiActivity_method_ptr();
    operator SdaiActivity_method_assignment_ptr();
    operator SdaiActivity_method_realization_ptr();
    operator SdaiActivity_method_realization_relationship_ptr();
    operator SdaiActivity_method_relationship_ptr();
    operator SdaiActivity_property_ptr();
    operator SdaiActivity_relationship_ptr();
    operator SdaiAlternate_part_relationship_ptr();
    operator SdaiApplied_activity_assignment_ptr();
    operator SdaiApplied_activity_method_assignment_ptr();
    operator SdaiApproval_ptr();
    operator SdaiApproval_relationship_ptr();
    operator SdaiApproval_status_ptr();
    operator SdaiAssembly_component_relationship_ptr();
    operator SdaiAssembly_relationship_substitution_ptr();
    operator SdaiAssigned_property_ptr();
    operator SdaiAttachment_slot_ptr();
    operator SdaiAttachment_slot_definition_ptr();
    operator SdaiAttachment_slot_design_to_planned_ptr();
    operator SdaiAttachment_slot_design_to_realized_ptr();
    operator SdaiAttachment_slot_on_product_ptr();
    operator SdaiAttachment_slot_planned_to_realized_ptr();
    operator SdaiAttachment_slot_version_ptr();
    operator SdaiBreakdown_ptr();
    operator SdaiBreakdown_element_ptr();
    operator SdaiBreakdown_element_realization_ptr();
    operator SdaiBreakdown_element_usage_ptr();
    operator SdaiBreakdown_element_version_ptr();
    operator SdaiCertification_ptr();
    operator SdaiCondition_ptr();
    operator SdaiCondition_evaluation_ptr();
    operator SdaiCondition_evaluation_parameter_ptr();
    operator SdaiCondition_parameter_ptr();
    operator SdaiCondition_relationship_ptr();
    operator SdaiContract_ptr();
    operator SdaiDate_or_date_time_assignment_ptr();
    operator SdaiDigital_document_definition_ptr();
    operator SdaiDocument_ptr();
    operator SdaiDocument_assignment_ptr();
    operator SdaiDocument_definition_relationship_ptr();
    operator SdaiDocument_version_ptr();
    operator SdaiEnvelope_ptr();
    operator SdaiEnvelope_relationship_ptr();
    operator SdaiEvent_ptr();
    operator SdaiExperience_gained_ptr();
    operator SdaiExperience_type_ptr();
    operator SdaiExternal_item_identification_ptr();
    operator SdaiExternal_source_identification_ptr();
    operator SdaiFile_relationship_ptr();
    operator SdaiGlobal_location_representation_ptr();
    operator SdaiIdentification_assignment_ptr();
    operator SdaiIndependent_property_ptr();
    operator SdaiIndependent_property_relationship_ptr();
    operator SdaiInformation_right_ptr();
    operator SdaiInformation_usage_right_ptr();
    operator SdaiInterface_connection_ptr();
    operator SdaiInterface_connector_ptr();
    operator SdaiInterface_connector_definition_ptr();
    operator SdaiInterface_connector_occurrence_ptr();
    operator SdaiInterface_connector_version_ptr();
    operator SdaiInterface_definition_connection_ptr();
    operator SdaiInterface_definition_for_ptr();
    operator SdaiJustification_ptr();
    operator SdaiJustification_assignment_ptr();
    operator SdaiJustification_relationship_ptr();
    operator SdaiJustification_support_assignment_ptr();
    operator SdaiLocation_ptr();
    operator SdaiLocation_assignment_ptr();
    operator SdaiLocation_relationship_ptr();
    operator SdaiManaged_resource_ptr();
    operator SdaiManaged_resource_relationship_ptr();
    operator SdaiMessage_ptr();
    operator SdaiMessage_relationship_ptr();
    operator SdaiObservation_ptr();
    operator SdaiObservation_consequence_ptr();
    operator SdaiOrganization_relationship_ptr();
    operator SdaiOrganization_type_ptr();
    operator SdaiOrganizational_location_identification_ptr();
    operator SdaiPart_ptr();
    operator SdaiPart_version_ptr();
    operator SdaiPart_view_definition_ptr();
    operator SdaiPerson_in_organization_ptr();
    operator SdaiPhysical_document_definition_ptr();
    operator SdaiPosition_ptr();
    operator SdaiPosition_group_ptr();
    operator SdaiPosition_relationship_ptr();
    operator SdaiPosition_role_ptr();
    operator SdaiPosition_type_ptr();
    operator SdaiProduct_as_individual_ptr();
    operator SdaiProduct_as_individual_version_ptr();
    operator SdaiProduct_as_individual_view_ptr();
    operator SdaiProduct_based_location_identification_ptr();
    operator SdaiProduct_category_ptr();
    operator SdaiProduct_configuration_ptr();
    operator SdaiProduct_group_ptr();
    operator SdaiProduct_group_relationship_ptr();
    operator SdaiProduct_relationship_ptr();
    operator SdaiProject_ptr();
    operator SdaiProject_assignment_ptr();
    operator SdaiProject_relationship_ptr();
    operator SdaiQualification_type_ptr();
    operator SdaiRegional_coordinate_ptr();
    operator SdaiRegional_grid_location_representation_ptr();
    operator SdaiRelated_condition_parameter_ptr();
    operator SdaiRepresentation_item_ptr();
    operator SdaiRequired_resource_ptr();
    operator SdaiRequired_resource_relationship_ptr();
    operator SdaiRequirement_ptr();
    operator SdaiRequirement_assignment_ptr();
    operator SdaiRequirement_collection_relationship_ptr();
    operator SdaiRequirement_source_ptr();
    operator SdaiRequirement_version_ptr();
    operator SdaiRequirement_version_relationship_ptr();
    operator SdaiRequirement_view_definition_ptr();
    operator SdaiResource_as_realized_ptr();
    operator SdaiResource_as_realized_relationship_ptr();
    operator SdaiResource_event_ptr();
    operator SdaiResource_event_correspondence_relationship_ptr();
    operator SdaiResource_event_relationship_ptr();
    operator SdaiResource_item_ptr();
    operator SdaiResource_item_assignment_ptr();
    operator SdaiResource_item_relationship_ptr();
    operator SdaiResource_property_ptr();
    operator SdaiState_ptr();
    operator SdaiState_definition_ptr();
    operator SdaiState_definition_relationship_ptr();
    operator SdaiState_relationship_ptr();
    operator SdaiTask_element_ptr();
    operator SdaiTask_element_relationship_ptr();
    operator SdaiTask_method_ptr();
    operator SdaiTask_method_assignment_ptr();
    operator SdaiTask_method_relationship_ptr();
    operator SdaiTask_method_version_ptr();
    operator SdaiTask_method_version_assignment_ptr();
    operator SdaiTask_method_version_relationship_ptr();
    operator SdaiTask_objective_ptr();
    operator SdaiTracing_relationship_ptr();
    operator SdaiType_of_person_ptr();
    operator SdaiType_of_person_assignment_ptr();
    operator SdaiType_of_person_definition_ptr();
    operator SdaiType_of_person_definition_relationship_ptr();
    operator SdaiWork_order_ptr();
    operator SdaiWork_output_ptr();
    operator SdaiWork_output_relationship_ptr();

    //  part 3
        SdaiWork_output_item_ptr_c output_item_() const;
        SdaiWork_output_item_ptr   output_item_();
        void output_item_( const SdaiWork_output_item_ptr x );

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

        SdaiType_of_person_ptr_c assigned_type_of_person_() const;
        SdaiType_of_person_ptr   assigned_type_of_person_();
        void assigned_type_of_person_( const SdaiType_of_person_ptr x );

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

        SdaiTask_method_ptr_c of_task_method_() const;
        SdaiTask_method_ptr   of_task_method_();
        void of_task_method_( const SdaiTask_method_ptr x );

        SdaiTask_element_ptr_c content_() const;
        SdaiTask_element_ptr   content_();
        void content_( const SdaiTask_element_ptr x );

        SdaiTask_item_agg_ptr_c applied_activity_method_assignment_items_() const;
        SdaiTask_item_agg_ptr   applied_activity_method_assignment_items_();
        void applied_activity_method_assignment_items_( const SdaiTask_item_agg_ptr x );

        SdaiTask_method_ptr_c applied_activity_method_assignment_assigned_activity_method_() const;
        SdaiTask_method_ptr   applied_activity_method_assignment_assigned_activity_method_();
        void applied_activity_method_assignment_assigned_activity_method_( const SdaiTask_method_ptr x );

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

        SdaiTask_element_ptr_c activity_method_relationship_related_method_() const;
        SdaiTask_element_ptr   activity_method_relationship_related_method_();
        void activity_method_relationship_related_method_( const SdaiTask_element_ptr x );

        SdaiTask_element_ptr_c activity_method_relationship_relating_method_() const;
        SdaiTask_element_ptr   activity_method_relationship_relating_method_();
        void activity_method_relationship_relating_method_( const SdaiTask_element_ptr x );

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

        SdaiResource_item_ptr_c assigned_resource_() const;
        SdaiResource_item_ptr   assigned_resource_();
        void assigned_resource_( const SdaiResource_item_ptr x );

        SdaiResource_item_select_agg_ptr_c resource_items_() const;
        SdaiResource_item_select_agg_ptr   resource_items_();
        void resource_items_( const SdaiResource_item_select_agg_ptr x );

        SdaiManaged_resource_ptr_c resource_() const;
        SdaiManaged_resource_ptr   resource_();
        void resource_( const SdaiManaged_resource_ptr x );

        SdaiRequirement_version_ptr_c product_version_relationship_related_version_() const;
        SdaiRequirement_version_ptr   product_version_relationship_related_version_();
        void product_version_relationship_related_version_( const SdaiRequirement_version_ptr x );

        SdaiRequirement_version_ptr_c product_version_relationship_relating_version_() const;
        SdaiRequirement_version_ptr   product_version_relationship_relating_version_();
        void product_version_relationship_relating_version_( const SdaiRequirement_version_ptr x );

        SdaiProduct_version_ptr_c related_version_() const;
        SdaiProduct_version_ptr   related_version_();
        void related_version_( const SdaiProduct_version_ptr x );

        SdaiProduct_version_ptr_c relating_version_() const;
        SdaiProduct_version_ptr   relating_version_();
        void relating_version_( const SdaiProduct_version_ptr x );

        SdaiRequirement_view_definition_ptr_c sourced_requirement_() const;
        SdaiRequirement_view_definition_ptr   sourced_requirement_();
        void sourced_requirement_( const SdaiRequirement_view_definition_ptr x );

        SdaiRequirement_source_item_ptr_c source_() const;
        SdaiRequirement_source_item_ptr   source_();
        void source_( const SdaiRequirement_source_item_ptr x );

        SdaiRequirement_assignment_item_ptr_c assigned_to_() const;
        SdaiRequirement_assignment_item_ptr   assigned_to_();
        void assigned_to_( const SdaiRequirement_assignment_item_ptr x );

        SdaiRequirement_view_definition_ptr_c assigned_requirement_() const;
        SdaiRequirement_view_definition_ptr   assigned_requirement_();
        void assigned_requirement_( const SdaiRequirement_view_definition_ptr x );

        SdaiValue_with_unit_ptr_c required_quantity_() const;
        SdaiValue_with_unit_ptr   required_quantity_();
        void required_quantity_( const SdaiValue_with_unit_ptr x );

        SdaiCondition_parameter_ptr_c condition_parameter_() const;
        SdaiCondition_parameter_ptr   condition_parameter_();
        void condition_parameter_( const SdaiCondition_parameter_ptr x );

        SdaiCondition_evaluation_parameter_ptr_c conditon_evaluation_parameter_() const;
        SdaiCondition_evaluation_parameter_ptr   conditon_evaluation_parameter_();
        void conditon_evaluation_parameter_( const SdaiCondition_evaluation_parameter_ptr x );

        SdaiRegional_grid_location_representation_ptr_c grid_system_() const;
        SdaiRegional_grid_location_representation_ptr   grid_system_();
        void grid_system_( const SdaiRegional_grid_location_representation_ptr x );

        SdaiValue_with_unit_ptr_c coordinate_value_() const;
        SdaiValue_with_unit_ptr   coordinate_value_();
        void coordinate_value_( const SdaiValue_with_unit_ptr x );

        SdaiProject_ptr_c related_project_() const;
        SdaiProject_ptr   related_project_();
        void related_project_( const SdaiProject_ptr x );

        SdaiProject_ptr_c relating_project_() const;
        SdaiProject_ptr   relating_project_();
        void relating_project_( const SdaiProject_ptr x );

        SdaiProject_ptr_c assigned_project_() const;
        SdaiProject_ptr   assigned_project_();
        void assigned_project_( const SdaiProject_ptr x );

        SdaiDate_or_date_time_select_ptr_c actual_end_date_() const;
        SdaiDate_or_date_time_select_ptr   actual_end_date_();
        void actual_end_date_( const SdaiDate_or_date_time_select_ptr x );

        SdaiDate_or_event_ptr_c planned_end_date_() const;
        SdaiDate_or_event_ptr   planned_end_date_();
        void planned_end_date_( const SdaiDate_or_event_ptr x );

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

        SdaiProduct_ptr_c related_product_() const;
        SdaiProduct_ptr   related_product_();
        void related_product_( const SdaiProduct_ptr x );

        SdaiProduct_ptr_c relating_product_() const;
        SdaiProduct_ptr   relating_product_();
        void relating_product_( const SdaiProduct_ptr x );

  const SDAI_String   product_group_context_() const;
        SDAI_String   product_group_context_();
        void product_group_context_( const SDAI_String x );

  const SDAI_String   membership_rule_() const;
        SDAI_String   membership_rule_();
        void membership_rule_( const SDAI_String x );

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

        SdaiProduct_concept_ptr_c item_context_() const;
        SdaiProduct_concept_ptr   item_context_();
        void item_context_( const SdaiProduct_concept_ptr x );

        SdaiProduct_based_location_representation_ptr_c referenced_product_() const;
        SdaiProduct_based_location_representation_ptr   referenced_product_();
        void referenced_product_( const SdaiProduct_based_location_representation_ptr x );

  const SDAI_String   location_name_() const;
        SDAI_String   location_name_();
        void location_name_( const SDAI_String x );

  const SDAI_String   location_identification_() const;
        SDAI_String   location_identification_();
        void location_identification_( const SDAI_String x );

        SdaiPosition_ptr_c related_position_() const;
        SdaiPosition_ptr   related_position_();
        void related_position_( const SdaiPosition_ptr x );

        SdaiPosition_ptr_c relating_position_() const;
        SdaiPosition_ptr   relating_position_();
        void relating_position_( const SdaiPosition_ptr x );

        SdaiPosition_context_item_ptr_c position_context_() const;
        SdaiPosition_context_item_ptr   position_context_();
        void position_context_( const SdaiPosition_context_item_ptr x );

        SdaiAddress_ptr_c address_() const;
        SdaiAddress_ptr   address_();
        void address_( const SdaiAddress_ptr x );

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

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

        SdaiPerson_ptr_c concerned_person_() const;
        SdaiPerson_ptr   concerned_person_();
        void concerned_person_( const SdaiPerson_ptr x );

  const SDAI_String   location_value_() const;
        SDAI_String   location_value_();
        void location_value_( const SDAI_String x );

  const SDAI_String   identification_type_() const;
        SDAI_String   identification_type_();
        void identification_type_( const SDAI_String x );

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

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

        SdaiWork_request_ptr_c requests_() const;
        SdaiWork_request_ptr   requests_();
        void requests_( const SdaiWork_request_ptr x );

        SdaiObservation_ptr_c infered_from_() const;
        SdaiObservation_ptr   infered_from_();
        void infered_from_( const SdaiObservation_ptr x );

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

        SdaiActivity_actual_ptr_c observed_during_() const;
        SdaiActivity_actual_ptr   observed_during_();
        void observed_during_( const SdaiActivity_actual_ptr x );

        SdaiObservation_recorder_agg_ptr_c observed_by_() const;
        SdaiObservation_recorder_agg_ptr   observed_by_();
        void observed_by_( const SdaiObservation_recorder_agg_ptr x );

        SdaiObserved_context_agg_ptr_c in_context_() const;
        SdaiObserved_context_agg_ptr   in_context_();
        void in_context_( const SdaiObserved_context_agg_ptr x );

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

        SdaiMessage_definer_select_agg_ptr_c defined_by_() const;
        SdaiMessage_definer_select_agg_ptr   defined_by_();
        void defined_by_( const SdaiMessage_definer_select_agg_ptr x );

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

  const SDAI_String   message_type_() const;
        SDAI_String   message_type_();
        void message_type_( const SDAI_String x );

        SdaiLocation_ptr_c location_for_assignment_() const;
        SdaiLocation_ptr   location_for_assignment_();
        void location_for_assignment_( const SdaiLocation_ptr x );

        SdaiLocation_assignment_select_ptr_c entity_for_location_() const;
        SdaiLocation_assignment_select_ptr   entity_for_location_();
        void entity_for_location_( const SdaiLocation_assignment_select_ptr x );

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

        SdaiJustification_support_item_ptr_c support_item_() const;
        SdaiJustification_support_item_ptr   support_item_();
        void support_item_( const SdaiJustification_support_item_ptr x );

        SdaiJustification_ptr_c related_justification_() const;
        SdaiJustification_ptr   related_justification_();
        void related_justification_( const SdaiJustification_ptr x );

        SdaiJustification_ptr_c relating_justification_() const;
        SdaiJustification_ptr   relating_justification_();
        void relating_justification_( const SdaiJustification_ptr x );

        SdaiJustification_ptr_c justification_() const;
        SdaiJustification_ptr   justification_();
        void justification_( const SdaiJustification_ptr x );

  const SDAI_String   context_description_() const;
        SDAI_String   context_description_();
        void context_description_( const SDAI_String x );

        SdaiInterface_definition_item_ptr_c interface_component_() const;
        SdaiInterface_definition_item_ptr   interface_component_();
        void interface_component_( const SdaiInterface_definition_item_ptr x );

        SdaiInterface_specification_definition_ptr_c interface_() const;
        SdaiInterface_specification_definition_ptr   interface_();
        void interface_( const SdaiInterface_specification_definition_ptr x );

        SdaiInterface_connector_definition_ptr_c occurrence_of_() const;
        SdaiInterface_connector_definition_ptr   occurrence_of_();
        void occurrence_of_( const SdaiInterface_connector_definition_ptr x );

        SdaiProduct_view_definition_ptr_c connector_on_() const;
        SdaiProduct_view_definition_ptr   connector_on_();
        void connector_on_( const SdaiProduct_view_definition_ptr x );

        SdaiConnection_items_ptr_c connected_() const;
        SdaiConnection_items_ptr   connected_();
        void connected_( const SdaiConnection_items_ptr x );

        SdaiConnection_items_ptr_c connecting_() const;
        SdaiConnection_items_ptr   connecting_();
        void connecting_( const SdaiConnection_items_ptr x );

  const SDAI_String   connection_type_() const;
        SDAI_String   connection_type_();
        void connection_type_( const SDAI_String x );

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

  const SDAI_String   comment_() const;
        SDAI_String   comment_();
        void comment_( const SDAI_String x );

  const SDAI_String   restriction_() const;
        SDAI_String   restriction_();
        void restriction_( const SDAI_String x );

  const SDAI_String   property_type_() const;
        SDAI_String   property_type_();
        void property_type_( const SDAI_String x );

  const SDAI_String   identifier_() const;
        SDAI_String   identifier_();
        void identifier_( const SDAI_String x );

        SdaiValue_with_unit_ptr_c longitude_() const;
        SdaiValue_with_unit_ptr   longitude_();
        void longitude_( const SdaiValue_with_unit_ptr x );

        SdaiValue_with_unit_ptr_c latitude_() const;
        SdaiValue_with_unit_ptr   latitude_();
        void latitude_( const SdaiValue_with_unit_ptr x );

  const SDAI_String   geographical_area_() const;
        SDAI_String   geographical_area_();
        void geographical_area_( const SDAI_String x );

        SdaiValue_with_unit_ptr_c altitude_() const;
        SdaiValue_with_unit_ptr   altitude_();
        void altitude_( const SdaiValue_with_unit_ptr x );

        SdaiFile_ptr_c related_document_file_() const;
        SdaiFile_ptr   related_document_file_();
        void related_document_file_( const SdaiFile_ptr x );

        SdaiFile_ptr_c relating_document_file_() const;
        SdaiFile_ptr   relating_document_file_();
        void relating_document_file_( const SdaiFile_ptr x );

  const SDAI_String   external_id_() const;
        SDAI_String   external_id_();
        void external_id_( const SDAI_String x );

        SdaiExternal_identification_item_ptr_c item_() const;
        SdaiExternal_identification_item_ptr   item_();
        void item_( const SdaiExternal_identification_item_ptr x );

  const SDAI_String   source_type_() const;
        SDAI_String   source_type_();
        void source_type_( const SDAI_String x );

  const SDAI_String   source_id_() const;
        SDAI_String   source_id_();
        void source_id_( const SDAI_String x );

        SdaiDefined_methods_ptr_c consists_of_() const;
        SdaiDefined_methods_ptr   consists_of_();
        void consists_of_( const SdaiDefined_methods_ptr x );

        SdaiPerson_or_organization_or_person_in_organization_select_ptr_c gained_by_() const;
        SdaiPerson_or_organization_or_person_in_organization_select_ptr   gained_by_();
        void gained_by_( const SdaiPerson_or_organization_or_person_in_organization_select_ptr x );

        SdaiExperience_instance_ptr_c experience_of_() const;
        SdaiExperience_instance_ptr   experience_of_();
        void experience_of_( const SdaiExperience_instance_ptr x );

        SdaiDate_or_date_time_select_ptr_c planned_start_date_() const;
        SdaiDate_or_date_time_select_ptr   planned_start_date_();
        void planned_start_date_( const SdaiDate_or_date_time_select_ptr x );

        SdaiDate_or_date_time_select_ptr_c actual_start_date_() const;
        SdaiDate_or_date_time_select_ptr   actual_start_date_();
        void actual_start_date_( const SdaiDate_or_date_time_select_ptr x );

        SdaiMessage_ptr_c wrapping_() const;
        SdaiMessage_ptr   wrapping_();
        void wrapping_( const SdaiMessage_ptr x );

  const SDAI_String   acknowledge_() const;
        SDAI_String   acknowledge_();
        void acknowledge_( const SDAI_String x );

        SdaiDocument_definition_ptr_c related_document_definition_() const;
        SdaiDocument_definition_ptr   related_document_definition_();
        void related_document_definition_( const SdaiDocument_definition_ptr x );

        SdaiDocument_definition_ptr_c relating_document_definition_() const;
        SdaiDocument_definition_ptr   relating_document_definition_();
        void relating_document_definition_( const SdaiDocument_definition_ptr x );

        SdaiDocumented_element_select_ptr_c is_assigned_to_() const;
        SdaiDocumented_element_select_ptr   is_assigned_to_();
        void is_assigned_to_( const SdaiDocumented_element_select_ptr x );

        SdaiAssigned_document_select_ptr_c assigned_document_() const;
        SdaiAssigned_document_select_ptr   assigned_document_();
        void assigned_document_( const SdaiAssigned_document_select_ptr x );

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

        SdaiDate_or_date_time_select_ptr_c assigned_date_() const;
        SdaiDate_or_date_time_select_ptr   assigned_date_();
        void assigned_date_( const SdaiDate_or_date_time_select_ptr x );

        SdaiCondition_ptr_c related_condition_() const;
        SdaiCondition_ptr   related_condition_();
        void related_condition_( const SdaiCondition_ptr x );

        SdaiCondition_ptr_c relating_condition_() const;
        SdaiCondition_ptr   relating_condition_();
        void relating_condition_( const SdaiCondition_ptr x );

        SdaiCondition_parameter_item_ptr_c parameter_() const;
        SdaiCondition_parameter_item_ptr   parameter_();
        void parameter_( const SdaiCondition_parameter_item_ptr x );

        SdaiCondition_evaluation_parameter_item_ptr_c evaluation_parameter_() const;
        SdaiCondition_evaluation_parameter_item_ptr   evaluation_parameter_();
        void evaluation_parameter_( const SdaiCondition_evaluation_parameter_item_ptr x );

        SdaiCondition_evaluation_ptr_c condition_evaluation_() const;
        SdaiCondition_evaluation_ptr   condition_evaluation_();
        void condition_evaluation_( const SdaiCondition_evaluation_ptr x );

        SdaiCondition_ptr_c condition_() const;
        SdaiCondition_ptr   condition_();
        void condition_( const SdaiCondition_ptr x );

        Logical   result_() const;
        void result_( const Logical x );

  const SDAI_String   kind_() const;
        SDAI_String   kind_();
        void kind_( const SDAI_String x );

        SdaiBreakdown_element_definition_ptr_c view_definition_relationship_related_view_() const;
        SdaiBreakdown_element_definition_ptr   view_definition_relationship_related_view_();
        void view_definition_relationship_related_view_( const SdaiBreakdown_element_definition_ptr x );

        SdaiBreakdown_element_definition_ptr_c view_definition_relationship_relating_view_() const;
        SdaiBreakdown_element_definition_ptr   view_definition_relationship_relating_view_();
        void view_definition_relationship_relating_view_( const SdaiBreakdown_element_definition_ptr x );

        SdaiBreakdown_item_ptr_c breakdown_() const;
        SdaiBreakdown_item_ptr   breakdown_();
        void breakdown_( const SdaiBreakdown_item_ptr x );

        SdaiAttachment_slot_ptr_c product_version_of_product_() const;
        SdaiAttachment_slot_ptr   product_version_of_product_();
        void product_version_of_product_( const SdaiAttachment_slot_ptr x );

        SdaiProduct_ptr_c of_product_() const;
        SdaiProduct_ptr   of_product_();
        void of_product_( const SdaiProduct_ptr x );

        SdaiAttachment_slot_definition_ptr_c attachment_slot_() const;
        SdaiAttachment_slot_definition_ptr   attachment_slot_();
        void attachment_slot_( const SdaiAttachment_slot_definition_ptr x );

        SdaiProduct_view_definition_ptr_c product_() const;
        SdaiProduct_view_definition_ptr   product_();
        void product_( const SdaiProduct_view_definition_ptr x );

        SdaiAttachment_slot_as_realized_ptr_c realized_() const;
        SdaiAttachment_slot_as_realized_ptr   realized_();
        void realized_( const SdaiAttachment_slot_as_realized_ptr x );

        SdaiAttachment_slot_as_planned_ptr_c planned_() const;
        SdaiAttachment_slot_as_planned_ptr   planned_();
        void planned_( const SdaiAttachment_slot_as_planned_ptr x );

        SdaiAttachment_slot_design_ptr_c design_() const;
        SdaiAttachment_slot_design_ptr   design_();
        void design_( const SdaiAttachment_slot_design_ptr x );

        SdaiAttachment_slot_version_ptr_c product_view_definition_defined_version_() const;
        SdaiAttachment_slot_version_ptr   product_view_definition_defined_version_();
        void product_view_definition_defined_version_( const SdaiAttachment_slot_version_ptr x );

        SdaiProduct_version_ptr_c defined_version_() const;
        SdaiProduct_version_ptr   defined_version_();
        void defined_version_( const SdaiProduct_version_ptr x );

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

        SdaiView_definition_context_ptr_c initial_context_() const;
        SdaiView_definition_context_ptr   initial_context_();
        void initial_context_( const SdaiView_definition_context_ptr x );

  const SDAI_String   additional_characterization_() const;
        SDAI_String   additional_characterization_();
        void additional_characterization_( const SDAI_String x );

        SdaiAssembly_component_relationship_ptr_c substitute_relationship_() const;
        SdaiAssembly_component_relationship_ptr   substitute_relationship_();
        void substitute_relationship_( const SdaiAssembly_component_relationship_ptr x );

        SdaiAssembly_component_relationship_ptr_c base_relationship_() const;
        SdaiAssembly_component_relationship_ptr   base_relationship_();
        void base_relationship_( const SdaiAssembly_component_relationship_ptr x );

  const SDAI_String   location_indicator_() const;
        SDAI_String   location_indicator_();
        void location_indicator_( const SDAI_String x );

        SdaiValue_with_unit_ptr_c quantity_() const;
        SdaiValue_with_unit_ptr   quantity_();
        void quantity_( const SdaiValue_with_unit_ptr x );

        SdaiProduct_view_definition_ptr_c related_view_() const;
        SdaiProduct_view_definition_ptr   related_view_();
        void related_view_( const SdaiProduct_view_definition_ptr x );

        SdaiProduct_view_definition_ptr_c relating_view_() const;
        SdaiProduct_view_definition_ptr   relating_view_();
        void relating_view_( const SdaiProduct_view_definition_ptr x );

  const SDAI_String   status_name_() const;
        SDAI_String   status_name_();
        void status_name_( const SDAI_String x );

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

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

        SdaiDate_or_date_time_select_ptr_c actual_date_() const;
        SdaiDate_or_date_time_select_ptr   actual_date_();
        void actual_date_( const SdaiDate_or_date_time_select_ptr x );

        SdaiDate_or_date_time_select_ptr_c planned_date_() const;
        SdaiDate_or_date_time_select_ptr   planned_date_();
        void planned_date_( const SdaiDate_or_date_time_select_ptr x );

        SdaiApproval_status_ptr_c status_() const;
        SdaiApproval_status_ptr   status_();
        void status_( const SdaiApproval_status_ptr x );

        SdaiActivity_method_ptr_c assigned_activity_method_() const;
        SdaiActivity_method_ptr   assigned_activity_method_();
        void assigned_activity_method_( const SdaiActivity_method_ptr x );

  const SDAI_String   role_() const;
        SDAI_String   role_();
        void role_( const SDAI_String x );

        SdaiActivity_item_agg_ptr_c items_() const;
        SdaiActivity_item_agg_ptr   items_();
        void items_( const SdaiActivity_item_agg_ptr x );

        SdaiActivity_ptr_c assigned_activity_() const;
        SdaiActivity_ptr   assigned_activity_();
        void assigned_activity_( const SdaiActivity_ptr x );

        SdaiPart_ptr_c alternate_product_relationship_base_product_() const;
        SdaiPart_ptr   alternate_product_relationship_base_product_();
        void alternate_product_relationship_base_product_( const SdaiPart_ptr x );

        SdaiPart_ptr_c alternate_product_relationship_alternate_product_() const;
        SdaiPart_ptr   alternate_product_relationship_alternate_product_();
        void alternate_product_relationship_alternate_product_( const SdaiPart_ptr x );

  const SDAI_String   criteria_() const;
        SDAI_String   criteria_();
        void criteria_( const SDAI_String x );

        SdaiProduct_ptr_c base_product_() const;
        SdaiProduct_ptr   base_product_();
        void base_product_( const SdaiProduct_ptr x );

        SdaiProduct_ptr_c alternate_product_() const;
        SdaiProduct_ptr   alternate_product_();
        void alternate_product_( const SdaiProduct_ptr x );

        SdaiActivity_ptr_c related_activity_() const;
        SdaiActivity_ptr   related_activity_();
        void related_activity_( const SdaiActivity_ptr x );

        SdaiActivity_ptr_c relating_activity_() const;
        SdaiActivity_ptr   relating_activity_();
        void relating_activity_( const SdaiActivity_ptr x );

        SdaiCharacterized_activity_definition_ptr_c described_element_() const;
        SdaiCharacterized_activity_definition_ptr   described_element_();
        void described_element_( const SdaiCharacterized_activity_definition_ptr x );

        SdaiActivity_method_ptr_c related_method_() const;
        SdaiActivity_method_ptr   related_method_();
        void related_method_( const SdaiActivity_method_ptr x );

        SdaiActivity_method_ptr_c relating_method_() const;
        SdaiActivity_method_ptr   relating_method_();
        void relating_method_( const SdaiActivity_method_ptr x );

        SdaiActivity_method_realization_ptr_c related_() const;
        SdaiActivity_method_realization_ptr   related_();
        void related_( const SdaiActivity_method_realization_ptr x );

        SdaiActivity_method_realization_ptr_c relating_() const;
        SdaiActivity_method_realization_ptr   relating_();
        void relating_( const SdaiActivity_method_realization_ptr x );

        SdaiActivity_realization_select_ptr_c realized_by_() const;
        SdaiActivity_realization_select_ptr   realized_by_();
        void realized_by_( const SdaiActivity_realization_select_ptr x );

        SdaiActivity_method_ptr_c activity_method_() const;
        SdaiActivity_method_ptr   activity_method_();
        void activity_method_( const SdaiActivity_method_ptr x );

        SdaiWork_request_ptr_c associated_request_() const;
        SdaiWork_request_ptr   associated_request_();
        void associated_request_( const SdaiWork_request_ptr x );

        SdaiActivity_method_ptr_c assigned_method_() const;
        SdaiActivity_method_ptr   assigned_method_();
        void assigned_method_( const SdaiActivity_method_ptr x );

  const SDAI_String   relation_type_() const;
        SDAI_String   relation_type_();
        void relation_type_( const SDAI_String x );

  const SDAI_String   purpose_() const;
        SDAI_String   purpose_();
        void purpose_( const SDAI_String x );

  const SDAI_String   consequence_() const;
        SDAI_String   consequence_();
        void consequence_( const SDAI_String x );

        SdaiActivity_method_ptr_c chosen_method_() const;
        SdaiActivity_method_ptr   chosen_method_();
        void chosen_method_( const SdaiActivity_method_ptr x );

  const SDAI_String   description_() const;
        SDAI_String   description_();
        void description_( const SDAI_String x );

  const SDAI_String   name_() const;
        SDAI_String   name_();
        void name_( const SDAI_String x );

  const SDAI_String   id_() const;
        SDAI_String   id_();
        void id_( const SDAI_String x );


    //  part 4
    SdaiString_select& operator =( const SdaiActivity_ptr& );
    SdaiString_select& operator =( const SdaiActivity_method_ptr& );
    SdaiString_select& operator =( const SdaiActivity_method_assignment_ptr& );
    SdaiString_select& operator =( const SdaiActivity_method_realization_ptr& );
    SdaiString_select& operator =( const SdaiActivity_method_realization_relationship_ptr& );
    SdaiString_select& operator =( const SdaiActivity_method_relationship_ptr& );
    SdaiString_select& operator =( const SdaiActivity_property_ptr& );
    SdaiString_select& operator =( const SdaiActivity_relationship_ptr& );
    SdaiString_select& operator =( const SdaiAlternate_part_relationship_ptr& );
    SdaiString_select& operator =( const SdaiApplied_activity_assignment_ptr& );
    SdaiString_select& operator =( const SdaiApplied_activity_method_assignment_ptr& );
    SdaiString_select& operator =( const SdaiApproval_ptr& );
    SdaiString_select& operator =( const SdaiApproval_relationship_ptr& );
    SdaiString_select& operator =( const SdaiApproval_status_ptr& );
    SdaiString_select& operator =( const SdaiAssembly_component_relationship_ptr& );
    SdaiString_select& operator =( const SdaiAssembly_relationship_substitution_ptr& );
    SdaiString_select& operator =( const SdaiAssigned_property_ptr& );
    SdaiString_select& operator =( const SdaiAttachment_slot_ptr& );
    SdaiString_select& operator =( const SdaiAttachment_slot_definition_ptr& );
    SdaiString_select& operator =( const SdaiAttachment_slot_design_to_planned_ptr& );
    SdaiString_select& operator =( const SdaiAttachment_slot_design_to_realized_ptr& );
    SdaiString_select& operator =( const SdaiAttachment_slot_on_product_ptr& );
    SdaiString_select& operator =( const SdaiAttachment_slot_planned_to_realized_ptr& );
    SdaiString_select& operator =( const SdaiAttachment_slot_version_ptr& );
    SdaiString_select& operator =( const SdaiBreakdown_ptr& );
    SdaiString_select& operator =( const SdaiBreakdown_element_ptr& );
    SdaiString_select& operator =( const SdaiBreakdown_element_realization_ptr& );
    SdaiString_select& operator =( const SdaiBreakdown_element_usage_ptr& );
    SdaiString_select& operator =( const SdaiBreakdown_element_version_ptr& );
    SdaiString_select& operator =( const SdaiCertification_ptr& );
    SdaiString_select& operator =( const SdaiCondition_ptr& );
    SdaiString_select& operator =( const SdaiCondition_evaluation_ptr& );
    SdaiString_select& operator =( const SdaiCondition_evaluation_parameter_ptr& );
    SdaiString_select& operator =( const SdaiCondition_parameter_ptr& );
    SdaiString_select& operator =( const SdaiCondition_relationship_ptr& );
    SdaiString_select& operator =( const SdaiContract_ptr& );
    SdaiString_select& operator =( const SdaiDate_or_date_time_assignment_ptr& );
    SdaiString_select& operator =( const SdaiDigital_document_definition_ptr& );
    SdaiString_select& operator =( const SdaiDocument_ptr& );
    SdaiString_select& operator =( const SdaiDocument_assignment_ptr& );
    SdaiString_select& operator =( const SdaiDocument_definition_relationship_ptr& );
    SdaiString_select& operator =( const SdaiDocument_version_ptr& );
    SdaiString_select& operator =( const SdaiEnvelope_ptr& );
    SdaiString_select& operator =( const SdaiEnvelope_relationship_ptr& );
    SdaiString_select& operator =( const SdaiEvent_ptr& );
    SdaiString_select& operator =( const SdaiExperience_gained_ptr& );
    SdaiString_select& operator =( const SdaiExperience_type_ptr& );
    SdaiString_select& operator =( const SdaiExternal_item_identification_ptr& );
    SdaiString_select& operator =( const SdaiExternal_source_identification_ptr& );
    SdaiString_select& operator =( const SdaiFile_relationship_ptr& );
    SdaiString_select& operator =( const SdaiGlobal_location_representation_ptr& );
    SdaiString_select& operator =( const SdaiIdentification_assignment_ptr& );
    SdaiString_select& operator =( const SdaiIndependent_property_ptr& );
    SdaiString_select& operator =( const SdaiIndependent_property_relationship_ptr& );
    SdaiString_select& operator =( const SdaiInformation_right_ptr& );
    SdaiString_select& operator =( const SdaiInformation_usage_right_ptr& );
    SdaiString_select& operator =( const SdaiInterface_connection_ptr& );
    SdaiString_select& operator =( const SdaiInterface_connector_ptr& );
    SdaiString_select& operator =( const SdaiInterface_connector_definition_ptr& );
    SdaiString_select& operator =( const SdaiInterface_connector_occurrence_ptr& );
    SdaiString_select& operator =( const SdaiInterface_connector_version_ptr& );
    SdaiString_select& operator =( const SdaiInterface_definition_connection_ptr& );
    SdaiString_select& operator =( const SdaiInterface_definition_for_ptr& );
    SdaiString_select& operator =( const SdaiJustification_ptr& );
    SdaiString_select& operator =( const SdaiJustification_assignment_ptr& );
    SdaiString_select& operator =( const SdaiJustification_relationship_ptr& );
    SdaiString_select& operator =( const SdaiJustification_support_assignment_ptr& );
    SdaiString_select& operator =( const SdaiLocation_ptr& );
    SdaiString_select& operator =( const SdaiLocation_assignment_ptr& );
    SdaiString_select& operator =( const SdaiLocation_relationship_ptr& );
    SdaiString_select& operator =( const SdaiManaged_resource_ptr& );
    SdaiString_select& operator =( const SdaiManaged_resource_relationship_ptr& );
    SdaiString_select& operator =( const SdaiMessage_ptr& );
    SdaiString_select& operator =( const SdaiMessage_relationship_ptr& );
    SdaiString_select& operator =( const SdaiObservation_ptr& );
    SdaiString_select& operator =( const SdaiObservation_consequence_ptr& );
    SdaiString_select& operator =( const SdaiOrganization_relationship_ptr& );
    SdaiString_select& operator =( const SdaiOrganization_type_ptr& );
    SdaiString_select& operator =( const SdaiOrganizational_location_identification_ptr& );
    SdaiString_select& operator =( const SdaiPart_ptr& );
    SdaiString_select& operator =( const SdaiPart_version_ptr& );
    SdaiString_select& operator =( const SdaiPart_view_definition_ptr& );
    SdaiString_select& operator =( const SdaiPerson_in_organization_ptr& );
    SdaiString_select& operator =( const SdaiPhysical_document_definition_ptr& );
    SdaiString_select& operator =( const SdaiPosition_ptr& );
    SdaiString_select& operator =( const SdaiPosition_group_ptr& );
    SdaiString_select& operator =( const SdaiPosition_relationship_ptr& );
    SdaiString_select& operator =( const SdaiPosition_role_ptr& );
    SdaiString_select& operator =( const SdaiPosition_type_ptr& );
    SdaiString_select& operator =( const SdaiProduct_as_individual_ptr& );
    SdaiString_select& operator =( const SdaiProduct_as_individual_version_ptr& );
    SdaiString_select& operator =( const SdaiProduct_as_individual_view_ptr& );
    SdaiString_select& operator =( const SdaiProduct_based_location_identification_ptr& );
    SdaiString_select& operator =( const SdaiProduct_category_ptr& );
    SdaiString_select& operator =( const SdaiProduct_configuration_ptr& );
    SdaiString_select& operator =( const SdaiProduct_group_ptr& );
    SdaiString_select& operator =( const SdaiProduct_group_relationship_ptr& );
    SdaiString_select& operator =( const SdaiProduct_relationship_ptr& );
    SdaiString_select& operator =( const SdaiProject_ptr& );
    SdaiString_select& operator =( const SdaiProject_assignment_ptr& );
    SdaiString_select& operator =( const SdaiProject_relationship_ptr& );
    SdaiString_select& operator =( const SdaiQualification_type_ptr& );
    SdaiString_select& operator =( const SdaiRegional_coordinate_ptr& );
    SdaiString_select& operator =( const SdaiRegional_grid_location_representation_ptr& );
    SdaiString_select& operator =( const SdaiRelated_condition_parameter_ptr& );
    SdaiString_select& operator =( const SdaiRepresentation_item_ptr& );
    SdaiString_select& operator =( const SdaiRequired_resource_ptr& );
    SdaiString_select& operator =( const SdaiRequired_resource_relationship_ptr& );
    SdaiString_select& operator =( const SdaiRequirement_ptr& );
    SdaiString_select& operator =( const SdaiRequirement_assignment_ptr& );
    SdaiString_select& operator =( const SdaiRequirement_collection_relationship_ptr& );
    SdaiString_select& operator =( const SdaiRequirement_source_ptr& );
    SdaiString_select& operator =( const SdaiRequirement_version_ptr& );
    SdaiString_select& operator =( const SdaiRequirement_version_relationship_ptr& );
    SdaiString_select& operator =( const SdaiRequirement_view_definition_ptr& );
    SdaiString_select& operator =( const SdaiResource_as_realized_ptr& );
    SdaiString_select& operator =( const SdaiResource_as_realized_relationship_ptr& );
    SdaiString_select& operator =( const SdaiResource_event_ptr& );
    SdaiString_select& operator =( const SdaiResource_event_correspondence_relationship_ptr& );
    SdaiString_select& operator =( const SdaiResource_event_relationship_ptr& );
    SdaiString_select& operator =( const SdaiResource_item_ptr& );
    SdaiString_select& operator =( const SdaiResource_item_assignment_ptr& );
    SdaiString_select& operator =( const SdaiResource_item_relationship_ptr& );
    SdaiString_select& operator =( const SdaiResource_property_ptr& );
    SdaiString_select& operator =( const SdaiState_ptr& );
    SdaiString_select& operator =( const SdaiState_definition_ptr& );
    SdaiString_select& operator =( const SdaiState_definition_relationship_ptr& );
    SdaiString_select& operator =( const SdaiState_relationship_ptr& );
    SdaiString_select& operator =( const SdaiTask_element_ptr& );
    SdaiString_select& operator =( const SdaiTask_element_relationship_ptr& );
    SdaiString_select& operator =( const SdaiTask_method_ptr& );
    SdaiString_select& operator =( const SdaiTask_method_assignment_ptr& );
    SdaiString_select& operator =( const SdaiTask_method_relationship_ptr& );
    SdaiString_select& operator =( const SdaiTask_method_version_ptr& );
    SdaiString_select& operator =( const SdaiTask_method_version_assignment_ptr& );
    SdaiString_select& operator =( const SdaiTask_method_version_relationship_ptr& );
    SdaiString_select& operator =( const SdaiTask_objective_ptr& );
    SdaiString_select& operator =( const SdaiTracing_relationship_ptr& );
    SdaiString_select& operator =( const SdaiType_of_person_ptr& );
    SdaiString_select& operator =( const SdaiType_of_person_assignment_ptr& );
    SdaiString_select& operator =( const SdaiType_of_person_definition_ptr& );
    SdaiString_select& operator =( const SdaiType_of_person_definition_relationship_ptr& );
    SdaiString_select& operator =( const SdaiWork_order_ptr& );
    SdaiString_select& operator =( const SdaiWork_output_ptr& );
    SdaiString_select& operator =( const SdaiWork_output_relationship_ptr& );
    // not in SDAI
    SdaiString_select& ShallowCopy ( const SdaiString_select& );

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

    //  part 5
    Logical IsActivity() const;
    Logical IsActivity_method() const;
    Logical IsActivity_method_assignment() const;
    Logical IsActivity_method_realization() const;
    Logical IsActivity_method_realization_relationship() const;
    Logical IsActivity_method_relationship() const;
    Logical IsActivity_property() const;
    Logical IsActivity_relationship() const;
    Logical IsAlternate_part_relationship() const;
    Logical IsApplied_activity_assignment() const;
    Logical IsApplied_activity_method_assignment() const;
    Logical IsApproval() const;
    Logical IsApproval_relationship() const;
    Logical IsApproval_status() const;
    Logical IsAssembly_component_relationship() const;
    Logical IsAssembly_relationship_substitution() const;
    Logical IsAssigned_property() const;
    Logical IsAttachment_slot() const;
    Logical IsAttachment_slot_definition() const;
    Logical IsAttachment_slot_design_to_planned() const;
    Logical IsAttachment_slot_design_to_realized() const;
    Logical IsAttachment_slot_on_product() const;
    Logical IsAttachment_slot_planned_to_realized() const;
    Logical IsAttachment_slot_version() const;
    Logical IsBreakdown() const;
    Logical IsBreakdown_element() const;
    Logical IsBreakdown_element_realization() const;
    Logical IsBreakdown_element_usage() const;
    Logical IsBreakdown_element_version() const;
    Logical IsCertification() const;
    Logical IsCondition() const;
    Logical IsCondition_evaluation() const;
    Logical IsCondition_evaluation_parameter() const;
    Logical IsCondition_parameter() const;
    Logical IsCondition_relationship() const;
    Logical IsContract() const;
    Logical IsDate_or_date_time_assignment() const;
    Logical IsDigital_document_definition() const;
    Logical IsDocument() const;
    Logical IsDocument_assignment() const;
    Logical IsDocument_definition_relationship() const;
    Logical IsDocument_version() const;
    Logical IsEnvelope() const;
    Logical IsEnvelope_relationship() const;
    Logical IsEvent() const;
    Logical IsExperience_gained() const;
    Logical IsExperience_type() const;
    Logical IsExternal_item_identification() const;
    Logical IsExternal_source_identification() const;
    Logical IsFile_relationship() const;
    Logical IsGlobal_location_representation() const;
    Logical IsIdentification_assignment() const;
    Logical IsIndependent_property() const;
    Logical IsIndependent_property_relationship() const;
    Logical IsInformation_right() const;
    Logical IsInformation_usage_right() const;
    Logical IsInterface_connection() const;
    Logical IsInterface_connector() const;
    Logical IsInterface_connector_definition() const;
    Logical IsInterface_connector_occurrence() const;
    Logical IsInterface_connector_version() const;
    Logical IsInterface_definition_connection() const;
    Logical IsInterface_definition_for() const;
    Logical IsJustification() const;
    Logical IsJustification_assignment() const;
    Logical IsJustification_relationship() const;
    Logical IsJustification_support_assignment() const;
    Logical IsLocation() const;
    Logical IsLocation_assignment() const;
    Logical IsLocation_relationship() const;
    Logical IsManaged_resource() const;
    Logical IsManaged_resource_relationship() const;
    Logical IsMessage() const;
    Logical IsMessage_relationship() const;
    Logical IsObservation() const;
    Logical IsObservation_consequence() const;
    Logical IsOrganization_relationship() const;
    Logical IsOrganization_type() const;
    Logical IsOrganizational_location_identification() const;
    Logical IsPart() const;
    Logical IsPart_version() const;
    Logical IsPart_view_definition() const;
    Logical IsPerson_in_organization() const;
    Logical IsPhysical_document_definition() const;
    Logical IsPosition() const;
    Logical IsPosition_group() const;
    Logical IsPosition_relationship() const;
    Logical IsPosition_role() const;
    Logical IsPosition_type() const;
    Logical IsProduct_as_individual() const;
    Logical IsProduct_as_individual_version() const;
    Logical IsProduct_as_individual_view() const;
    Logical IsProduct_based_location_identification() const;
    Logical IsProduct_category() const;
    Logical IsProduct_configuration() const;
    Logical IsProduct_group() const;
    Logical IsProduct_group_relationship() const;
    Logical IsProduct_relationship() const;
    Logical IsProject() const;
    Logical IsProject_assignment() const;
    Logical IsProject_relationship() const;
    Logical IsQualification_type() const;
    Logical IsRegional_coordinate() const;
    Logical IsRegional_grid_location_representation() const;
    Logical IsRelated_condition_parameter() const;
    Logical IsRepresentation_item() const;
    Logical IsRequired_resource() const;
    Logical IsRequired_resource_relationship() const;
    Logical IsRequirement() const;
    Logical IsRequirement_assignment() const;
    Logical IsRequirement_collection_relationship() const;
    Logical IsRequirement_source() const;
    Logical IsRequirement_version() const;
    Logical IsRequirement_version_relationship() const;
    Logical IsRequirement_view_definition() const;
    Logical IsResource_as_realized() const;
    Logical IsResource_as_realized_relationship() const;
    Logical IsResource_event() const;
    Logical IsResource_event_correspondence_relationship() const;
    Logical IsResource_event_relationship() const;
    Logical IsResource_item() const;
    Logical IsResource_item_assignment() const;
    Logical IsResource_item_relationship() const;
    Logical IsResource_property() const;
    Logical IsState() const;
    Logical IsState_definition() const;
    Logical IsState_definition_relationship() const;
    Logical IsState_relationship() const;
    Logical IsTask_element() const;
    Logical IsTask_element_relationship() const;
    Logical IsTask_method() const;
    Logical IsTask_method_assignment() const;
    Logical IsTask_method_relationship() const;
    Logical IsTask_method_version() const;
    Logical IsTask_method_version_assignment() const;
    Logical IsTask_method_version_relationship() const;
    Logical IsTask_objective() const;
    Logical IsTracing_relationship() const;
    Logical IsType_of_person() const;
    Logical IsType_of_person_assignment() const;
    Logical IsType_of_person_definition() const;
    Logical IsType_of_person_definition_relationship() const;
    Logical IsWork_order() const;
    Logical IsWork_output() const;
    Logical IsWork_output_relationship() const;

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

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

inline SDAI_Select * create_SdaiString_select () { return new SdaiString_select; }
typedef SdaiString_select * SdaiString_selectH;
typedef SdaiString_select_ptr SdaiString_select_var;


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

  public:
    SdaiString_select_agg( SelectTypeDescriptor * =ap239_product_life_cycle_support_arm_lf::t_string_select );
    ~SdaiString_select_agg();
    virtual SingleLinkNode * NewNode()
     { return new SelectNode (new SdaiString_select( sel_type )); }
};
inline STEPaggregate * create_SdaiString_select_agg () { return new SdaiString_select_agg; }
typedef SdaiString_select_agg_ptr SdaiString_select_agg_var;

/////  END SELECT TYPE string_select

void init_SdaiString_select(Registry& reg);

#endif
