(*
   $Id$
   ISO TC184/SC4/WG12 N4096 - ISO/TS 10303-1716 Part template 2d shape - EXPRESS MIM
   Supersedes ISO TC184/SC4/WG12 N3520
*)


SCHEMA Part_template_2d_shape_mim;
USE FROM Part_template_extension_mim;	-- ISO/TS 10303-1718
USE FROM Physical_unit_2d_shape_mim; -- ISO/TS 10303-1726

USE FROM product_property_definition_schema (characterized_definition);

  TYPE pt2ds_requirement_assigned_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON requirement_assigned_item WITH 
    (assembly_component_usage,
     structured_template);
  END_TYPE; 

  ENTITY allocated_passage_minimum_annular_ring
    SUBTYPE OF (characterized_object);
  END_ENTITY;    

  ENTITY complex_passage_padstack_definition
    SUBTYPE OF (stratum_stack_dependent_template, passage_padstack_definition);
  END_ENTITY;
  
  ENTITY design_stack_model
    SUBTYPE OF(stratum_stack_model);
  END_ENTITY;

  ENTITY equivalent_stackup_model_definition
    SUBTYPE OF (product_definition, product_definition_relationship);
     SELF\product_definition_relationship.relating_product_definition RENAMED primary_stackup_model   : stratum_stack_model;
     SELF\product_definition_relationship.related_product_definition RENAMED equivalent_stackup_model : stratum_stack_model;
    WHERE
      WR1 : primary_stackup_model :<>: equivalent_stackup_model;
  END_ENTITY;
   
  ENTITY equivalent_sub_stack_definition
    SUBTYPE OF (product_definition);
  END_ENTITY;

  ENTITY impedance_requirement_occurrence
    SUBTYPE OF (predefined_requirement_view_definition);
  END_ENTITY;

  ENTITY impedance_measurement_setup_requirement_occurrence
    SUBTYPE OF (predefined_requirement_view_definition);
  END_ENTITY;
  
  ENTITY library_stack_model
    SUBTYPE OF(stratum_stack_model);
  END_ENTITY;

  ENTITY local_linear_stack
    SUBTYPE OF (stratum_sub_stack);
  END_ENTITY;

  ENTITY material_removal_structured_template
    SUBTYPE OF (single_stratum_structured_template);
  END_ENTITY;

  ENTITY multi_stratum_special_symbol_template
    SUBTYPE OF (multi_stratum_structured_template, special_symbol_template);
  END_ENTITY;
  
  ENTITY multi_stratum_structured_template
    ABSTRACT SUPERTYPE OF (ONEOF (padstack_definition, multi_stratum_special_symbol_template)
      ANDOR stratum_stack_dependent_template)  
    SUBTYPE OF (structured_template);
  END_ENTITY;

  ENTITY padstack_definition
    SUPERTYPE OF (passage_padstack_definition)
    SUBTYPE OF (multi_stratum_structured_template);
  END_ENTITY;

  ENTITY part_template_keepout_shape_allocation_to_stratum_stack
    SUBTYPE OF (characterized_object, property_definition);
    DERIVE
      SELF\property_definition.definition : part_template_keepout_shape_allocation_to_stratum_stack := SELF;
  END_ENTITY;

  ENTITY passage_padstack_definition 
    SUBTYPE OF (padstack_definition);
  END_ENTITY; 

  ENTITY passage_technology_allocation_to_stack_model
    SUBTYPE OF (stratum_sub_stack);
  END_ENTITY;

  ENTITY physical_unit_keepout_shape_allocation_to_stratum_stack
    SUBTYPE OF (representation, representation_relationship);
  END_ENTITY;

  ENTITY single_stratum_special_symbol_template
    SUBTYPE OF (single_stratum_structured_template, special_symbol_template);
  END_ENTITY;
  
  ENTITY single_stratum_structured_template
    ABSTRACT SUPERTYPE OF (ONEOF (material_removal_structured_template, single_stratum_special_symbol_template))
    SUBTYPE OF (structured_template, single_stratum_template);
  END_ENTITY;

  ENTITY special_symbol_template
    ABSTRACT SUPERTYPE OF (ONEOF (single_stratum_special_symbol_template, multi_stratum_special_symbol_template))
    SUBTYPE OF (part_template_definition);
  END_ENTITY;

  ENTITY stratum_specific_template_location
    SUBTYPE OF (assembly_component_usage, property_definition);
  END_ENTITY;

  ENTITY stratum_stack_dependent_template
    SUBTYPE OF (multi_stratum_structured_template);
  END_ENTITY;

  ENTITY stratum_sub_stack 
    ABSTRACT SUPERTYPE OF (ONEOF(local_linear_stack, 
      passage_technology_allocation_to_stack_model))
    SUBTYPE OF (part_template_definition);
  END_ENTITY;      

  ENTITY structured_inter_stratum_feature_template
    SUBTYPE OF (inter_stratum_feature_template, stratum_stack_dependent_template);
  END_ENTITY;
  
  ENTITY structured_template
    ABSTRACT SUPERTYPE OF (ONEOF (single_stratum_structured_template, multi_stratum_structured_template))
    SUBTYPE OF (geometric_template);
  END_ENTITY;
	
END_SCHEMA;


