(*
   $Id$
   ISO TC184/SC4/WG12 N4760 - ISO/CD-TS 10303-1315 Mechanical design presentation representation with draughting - EXPRESS MIM
*)

SCHEMA Mechanical_design_presentation_representation_with_draughting_mim;

USE FROM Associative_draughting_elements_mim; -- ISO/CD-TS 10303-1311

USE FROM Mechanical_design_geometric_presentation_mim; -- ISO/CD-TS 10303-1313

USE FROM Mechanical_design_shaded_presentation_mim; -- ISO/CD-TS 10303-1314

USE FROM representation_schema(
  definitional_representation_relationship_with_same_context);

  TYPE mechanical_design_and_draughting_relationship_select = EXTENSIBLE GENERIC_ENTITY SELECT ( 
    draughting_model,
    mechanical_design_geometric_presentation_representation,
    mechanical_design_shaded_presentation_representation,
    mechanical_design_presentation_representation_with_draughting,
    shape_representation); 
  END_TYPE; 

  ENTITY mechanical_design_presentation_representation_with_draughting
    SUBTYPE of (representation); 
      SELF\representation.items : SET[1:?] OF camera_model_d3;
  END_ENTITY;  
 
  ENTITY mechanical_design_and_draughting_relationship
    SUBTYPE OF(definitional_representation_relationship_with_same_context); 
      SELF\representation_relationship.rep_1 : mechanical_design_and_draughting_relationship_select; 
      SELF\representation_relationship.rep_2 : mechanical_design_and_draughting_relationship_select; 
    WHERE    
      WR1: NOT('AIC_ASSOCIATIVE_DRAUGHTING_ELEMENTS.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR 
       (('AIC_ASSOCIATIVE_DRAUGHTING_ELEMENTS.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR
        ('PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
      WR2: NOT('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR 
       (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR
        ('PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
      WR3: NOT('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR 
       (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR
        ('PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
  END_ENTITY;  

END_SCHEMA;
