(*
   $Id$
   ISO TC184/SC4/WG12 N3898 - ISO/TS 10303-1650 Bare die - EXPRESS MIM
   Supersedes ISO TC184/SC4/WG12 N3316
*)
SCHEMA Bare_die_mim;

	USE FROM Extended_geometric_tolerance_mim;	-- ISO/TS 10303-1666
	USE FROM Functional_assignment_to_part_mim;	-- ISO/TS 10303-1674
	USE FROM Part_feature_function_mim;	-- ISO/TS 10303-1712
	USE FROM Functional_usage_view_mim;	-- ISO/TS 10303-1705

ENTITY bare_die
 SUBTYPE OF (physical_unit);
END_ENTITY;

ENTITY bare_die_bottom_surface
 SUBTYPE OF (bare_die_surface);
END_ENTITY;

ENTITY bare_die_edge_segment_surface
  SUBTYPE OF (shape_aspect, shape_aspect_relationship);
   SELF\shape_aspect_relationship.relating_shape_aspect : edge_segment_vertex;
   SELF\shape_aspect_relationship.related_shape_aspect  : edge_segment_vertex;
WHERE
  WR1: SELF\shape_aspect_relationship.relating_shape_aspect :<>:
       SELF\shape_aspect_relationship.related_shape_aspect;
END_ENTITY;

ENTITY bare_die_edge_surface
 SUBTYPE OF (bare_die_surface);
WHERE
  WR1: SELF\shape_aspect.product_definitional;
  WR2: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_aspect ||
       SELF\part_mounting_feature ||
       SELF\bare_die_edge_surface ||
       SELF\bare_die_surface)) = 0;
END_ENTITY;

ENTITY bare_die_surface
 ABSTRACT SUPERTYPE OF (ONEOF( bare_die_bottom_surface, 
                         bare_die_top_surface, 
                        bare_die_edge_surface))
 SUBTYPE OF (part_mounting_feature);
   SELF\shape_aspect.of_shape : bare_die;
 WHERE
   WR1: SELF\shape_aspect.product_definitional;
END_ENTITY;

ENTITY bare_die_terminal
  SUBTYPE OF (minimally_defined_bare_die_terminal, placed_feature);
END_ENTITY;

ENTITY bare_die_template_terminal
  SUBTYPE OF (part_feature_template_definition, shape_aspect);
END_ENTITY;

ENTITY bare_die_top_surface
 SUBTYPE OF (bare_die_surface);
WHERE
  WR1: SELF\shape_aspect.product_definitional;
  WR2: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_aspect ||
       SELF\part_mounting_feature ||
       SELF\bare_die_top_surface ||
       SELF\bare_die_surface)) = 0;
END_ENTITY;

ENTITY minimally_defined_bare_die_terminal
  SUPERTYPE OF (bare_die_terminal)
  SUBTYPE OF (shape_aspect);
    SELF\shape_aspect.of_shape : bare_die;
END_ENTITY;

END_SCHEMA;

