(*
$Id$
ISO TC184/SC4/WG3 N2372 - ISO/CD-TS 10303-403 AP203 configuration controlled 3d design of mechanical parts and assemblies - EXPRESS ARM
Supersedes ISO TC184/SC4/WG3 N1870
*) 


SCHEMA Ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies_arm;

-- MODULES ON CONFIGURATION CONTROL (AP214CC8)
USE FROM Design_product_data_management_arm; -- ISO/CD-TS 10303-1628

-- GD&T REPRESENTATION
USE FROM Default_tolerance_arm; -- ISO/TS 10303-1052
USE FROM Dimension_tolerance_arm; -- ISO/TS 10303-1050
USE FROM Geometric_tolerance_arm; -- ISO/TS 10303-1051

-- GD&T PRESENTATION
USE FROM Associative_text_arm; -- ISO/CD-TS 10303-1132
USE FROM Group_arm; -- ISO/TS 10303-1113
USE FROM Dimension_and_tolerance_callouts_arm; -- ISO/CD-TS 10303-1362
USE FROM Mechanical_design_presentation_representation_with_draughting_arm; -- ISO/CD-TS 10303-1315
USE FROM Mechanical_design_geometric_presentation_arm; -- ISO/CD-TS 10303-1313 
USE FROM Mechanical_design_shaded_presentation_arm; -- ISO/CD-TS 10303-1314 
USE FROM Presentation_hierarchy_arm; -- ISO/CD-TS 10303-1330
USE FROM Text_representation_arm;	-- ISO/TS 10303-1750

-- SOLID MODELS for parts 
USE FROM Advanced_boundary_representation_arm; -- ISO/CD-TS 10303-1514
USE FROM Elementary_boundary_representation_arm; -- ISO/CD-TS 10303-1329
USE FROM Faceted_boundary_representation_arm; -- ISO/TS 10303-1512
USE FROM Curve_swept_solid_arm; -- ISO/TS 10303-1659
USE FROM Modified_swept_solid_arm; -- ISO/TS 10303-1322
USE FROM Thickened_face_solid_arm; -- ISO/CD-TS 10303-1320
USE FROM Solid_with_local_modification_arm; -- ISO/CD-TS 10303-1319
USE FROM Constructive_solid_geometry_3d_arm; -- ISO/TS 10303-1068

-- OTHER SPECIALIZED 3D MODELS for parts 
USE FROM Manifold_surface_arm; -- ISO/CD-TS 10303-1509
USE FROM Non_manifold_surface_arm; -- ISO/CD-TS 10303-1324
USE FROM Geometrically_bounded_surface_arm; -- ISO/TS 10303-1507
USE FROM Geometrically_bounded_wireframe_arm; -- ISO/TS 10303-1510
USE FROM Edge_based_wireframe_arm; -- ISO/TS 10303-1501
USE FROM Shell_based_wireframe_arm; -- ISO/TS 10303-1502
USE FROM Compound_shape_representation_arm; -- ISO/CD-TS 10303-1327
USE FROM Wireframe_2d_arm; -- ISO/TS 10303-1347

-- OTHER GEOMETRY RELATED
USE FROM Representation_with_uncertainty_arm; -- ISO/TS 10303-1228
USE FROM Manifold_subsurface_arm; -- ISO/TS 10303-1702
USE FROM Geometric_validation_property_representation_arm; -- ISO/TS 10303-1039

USE FROM Inertia_characteristics_arm; --10303-1350
USE FROM Part_collection_arm; --10303-1115 
USE FROM Surface_conditions_arm; --10303-1110 
USE FROM Chemical_substance_arm; --10303-1655 
USE FROM Information_product_arm; --10303-1761 
USE FROM Planned_characteristic_arm; --10303-1733
USE FROM Specification_document_arm; --10303-1747
USE FROM Physical_breakdown_arm;    -- ISO/TS 10303-1215
USE FROM Shape_feature_arm;    -- ISO/TS 10303-1764
USE FROM Drawing_definition_arm;  -- ISO/TS 10303-1309
USE FROM Picture_representation_arm;  -- ISO/TS 10303-1308

-- Cataloguing modules
USE FROM Basic_data_representation_arm; -- ISO/CD-TS 10303-1773
USE FROM Extended_date_arm; -- ISO/CD-TS 10303-1776
USE FROM External_currency_arm; -- ISO/CD-TS 10303-1777
USE FROM External_library_arm; -- ISO/CD-TS 10303-1778
USE FROM External_representation_item_arm; -- ISO/CD-TS 10303-1779
USE FROM External_unit_arm; -- ISO/CD-TS 10303-1780
USE FROM Qualified_measure_arm; -- ISO/CD-TS 10303-1780

-- Composite material structures and properties 
USE FROM Composite_material_aspects_arm; -- ISO/CD-TS 10303-1768
USE FROM Composite_constituent_shape_arm;  -- ISO/CD-TS 10303-1767
USE FROM Part_and_zone_laminate_tables_arm;  -- ISO/CD-TS 10303-1770
USE FROM Ply_orientation_specification_arm;  -- ISO/CD-TS 10303-1772
USE FROM Stock_material_arm;  -- ISO/CD-TS 10303-1771
 

  TYPE alias_identification_item_203e2 = SELECT BASED_ON alias_identification_item WITH 
    (Approval_status, 
    Document, 
    Document_definition, 
    Document_version, 
    Geometric_model, 
    Independent_property, 
    Organization, 
    Part, 
    Part_version, 
    Part_view_definition, 
    Security_classification);
  END_TYPE; 

  TYPE appearance_context_203e2 = SELECT BASED_ON appearance_context WITH 
    (Visual_appearance);
  END_TYPE; 

  TYPE approval_item_203e2 = SELECT BASED_ON approval_item WITH 
    (Activity, 
    Alternate_part_relationship, 
    Assembly_relationship_substitution, 
    Document, 
    Document_definition, 
    Document_version, 
    File, 
    Part_version, 
    Part_view_definition);
  END_TYPE; 

  TYPE contract_item_203e2 = SELECT BASED_ON contract_item WITH 
    (Activity, 
    Part_version);
  END_TYPE; 

  TYPE documented_element_select_203e2 = SELECT BASED_ON documented_element_select WITH 
    (Part, 
    Part_version, 
    Part_view_definition, 
    View_definition_relationship);
  END_TYPE; 

  TYPE effectivity_item_203e2 = SELECT BASED_ON effectivity_item WITH 
    (Assembly_relationship_substitution, 
    Document, 
    Document_definition, 
    Document_definition_relationship, 
    Document_version, 
    Part, 
    Part_version, 
    Part_view_definition);
  END_TYPE; 

  TYPE groupable_item_203e2 = SELECT BASED_ON groupable_item WITH 
    (Detailed_geometric_model_element, 
     Geometric_model_relationship_with_transformation, 
     Geometric_placement_operation, 
     Detailed_topological_model_element, 
     Shape_element, 
     Styled_element);
  END_TYPE; 

  TYPE identification_item_203e2 = SELECT BASED_ON identification_item WITH 
    (Approval_status, 
    Document, 
    Document_definition, 
    Document_version, 
    Geometric_model, 
    Independent_property, 
    Organization, 
    Part, 
    Part_version, 
    Part_view_definition, 
    Security_classification);
  END_TYPE; 

  TYPE organization_or_person_in_organization_item_203e2 = SELECT BASED_ON organization_or_person_in_organization_item WITH 
    (Alternate_part_relationship, 
    Applied_independent_property, 
    Assembly_relationship_substitution, 
    Certification, 
    Document, 
    Document_definition, 
    Document_version, 
    File, 
    Geometric_model, 
    Independent_property, 
    Part, 
    Part_version, 
    Part_view_definition, 
    Product_version_relationship, 
    Project);
  END_TYPE; 

  TYPE presentation_association_select_203e2 = SELECT BASED_ON presentation_association_select WITH 
    (Activity, 
    Activity_method, 
    Activity_relationship, 
    Design_constraint_definition,
    Product_concept, 
    Specification, 
    Specification_category, 
    Product_view_definition,
    Product_version, 
    View_definition_relationship 
    );
  END_TYPE; 

  TYPE presented_model_select_203e2 = SELECT BASED_ON presented_model_select WITH
    (External_geometric_model);
  END_TYPE;

  TYPE security_classification_item_203e2 = SELECT BASED_ON security_classification_item WITH 
    (Document_definition, 
    Document_version, 
    File, 
    Part_version, 
    Part_view_definition, 
    View_definition_usage);
  END_TYPE; 

  TYPE string_select_203e2 = SELECT BASED_ON string_select WITH 
    (Alias_identification, 
    Alternate_part_relationship, 
    Applied_independent_property, 
    Assembly_relationship_substitution, 
    Certification_assignment, 
    Detailed_geometric_model_element, 
    Effectivity, 
    Effectivity_relationship, 
    Event, 
    External_geometric_model, 
    Independent_property, 
    Independent_property_relationship, 
    Item_shape, 
    Make_from_relationship, 
    Product_version_relationship, 
    Representation, 
    Security_classification_assignment, 
    Shape_element, 
    Shape_element_relationship, 
    String_representation_item, 
    Uncertainty_with_unit, 
    View_definition_context);
  END_TYPE; 

  TYPE time_interval_item_203e2 = SELECT BASED_ON time_interval_item WITH 
    (Time_interval_effectivity);
  END_TYPE; 

  TYPE text_or_composite_text_203e2 = SELECT BASED_ON text_or_composite_text WITH 
    (Annotation_text_character);
  END_TYPE; 

  TYPE text_string_representation_item_select_203e2 = SELECT BASED_ON text_string_representation_item_select WITH 
    (Annotation_text_character);
  END_TYPE; 

  SUBTYPE_CONSTRAINT exclusive_product_versions_203e2 FOR Product_version;
    ONEOF (Document_version,
         Part_version);
  END_SUBTYPE_CONSTRAINT;

  RULE addresses_are_assigned FOR 
      (Address);
    WHERE
      WR1: SIZEOF(QUERY(a <* Address | SIZEOF(USEDIN(a, 'PERSON_ORGANIZATION_ARM' + '.ADDRESS_ASSIGNMENT.ASSIGNED_ADDRESS')) = 0)) = 0;
  END_RULE; 

  RULE Person_requires_person_and_organization FOR 
      (Person);
    WHERE
      WR1: SIZEOF(QUERY(p <* Person | SIZEOF(USEDIN(p, 'PERSON_ORGANIZATION_ARM' + '.PERSON_IN_ORGANIZATION.CONCERNED_PERSON')) = 0)) = 0;
  END_RULE; 

  RULE Shape_requires_product_view FOR 
      (Item_shape);
    WHERE
      WR1: SIZEOF(QUERY(is <* Item_shape | NOT ('PRODUCT_VIEW_DEFINITION_ARM' + '.PRODUCT_VIEW_DEFINITION' IN TYPEOF(is.described_element)))) = 0;
  END_RULE; 

END_SCHEMA;
