Application module: Surface conditions ISO/TS 10303-1110:2019(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definitions
   4.3 ARM entity definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM entity definitions
     5.2.2 MIM function definition
     5.2.3 MIM rule definitions

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

(*
ISO/TC 184/SC 4/WG 12 N10371 - ISO/TS 10303-1110 Surface conditions - EXPRESS MIM
Supersedes ISO/TC 184/SC 4/WG 12 N9680
*)



SCHEMA Surface_conditions_mim;

USE FROM application_context_schema   -- ISO 10303-41
  (application_context_element);

USE FROM Generic_material_aspects_mim;    -- ISO/TS 10303-1681

USE FROM Geometric_tolerance_mim;    -- ISO/TS 10303-1051

USE FROM material_property_definition_schema   -- ISO 10303-45
  (material_designation,
   property_definition_relationship);

USE FROM Part_view_definition_mim;    -- ISO/TS 10303-1023

USE FROM product_property_definition_schema   -- ISO 10303-41
  (property_definition,
   shape_aspect_relationship);

USE FROM product_property_representation_schema   -- ISO 10303-41
  (property_definition_representation);

USE FROM Value_with_unit_extension_mim;    -- ISO/TS 10303-1753


ENTITY contact_ratio_representation
  SUBTYPE OF (representation);
WHERE
  WR1: (SIZEOF ( SELF.items ) =1 ) AND (SIZEOF ( QUERY ( i <* SELF.items | (SIZEOF(['QUALIFIED_MEASURE_SCHEMA.'+ 'MEASURE_REPRESENTATION_ITEM' , 'EXTENDED_MEASURE_REPRESENTATION_MIM.' + 'VALUE_RANGE']* TYPEOF(i)) = 1) AND (i.name = 'ratio value'))) = 1);
  WR2: (SIZEOF ( QUERY ( pdr <* USEDIN ( SELF ,'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | pdr\property_definition_representation.name = 'contact ratio reference' ) ) = 1 ) AND (SIZEOF ( QUERY (pdr <* USEDIN ( SELF ,'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | (pdr\property_definition_representation.name = 'contact ratio reference' ) AND ('PRODUCT_DEFINITION_SCHEMA.'+ 'PRODUCT_DEFINITION' IN TYPEOF ( pdr\property_definition_representation.definition\property_definition.definition)) )) = 1);
  WR3: (SIZEOF(USEDIN(SELF ,'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION')) = 1) AND (SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (pdr.definition , 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+ 'GENERAL_PROPERTY' IN TYPEOF (gpa\general_property_association.base_definition ) ) AND (gpa\general_property_association.base_definition\general_property.name ='surface_condition') )) = 1 )) = 1);
END_ENTITY;

ENTITY hardness_representation
  SUBTYPE OF (representation);
WHERE
  WR1: ( {2<= SIZEOF ( SELF.items ) <=4} ) AND ( SIZEOF ( QUERY ( i <* items | ( 'QUALIFIED_MEASURE_SCHEMA.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name IN [ 'measuring method' , 'measuring position' ] ) ) ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF ( ['QUALIFIED_MEASURE_SCHEMA.'+ 'MEASURE_REPRESENTATION_ITEM' , 'EXTENDED_MEASURE_REPRESENTATION_MIM.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) AND ( i.name IN ['depth' , 'hardness'] ) ) ) = SIZEOF ( SELF.items ) );
  WR2: SIZEOF ( QUERY ( i <* SELF.items | i.name = 'measuring method' ) ) =1;
  WR3: SIZEOF ( QUERY ( i <* SELF.items | i.name ='hardness' ) ) =1;
  WR4: SIZEOF ( QUERY ( i <* SELF.items | i.name = 'measuring position' ) ) <=1;
  WR5: SIZEOF ( QUERY ( i <* SELF.items | i.name ='depth' ) ) <=1;
  WR6: ( SIZEOF ( USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr.definition , 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 ) ) =1 );
END_ENTITY;

ENTITY surface_texture_representation
  SUBTYPE OF (representation);
WHERE
  WR1: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( ['QUALIFIED_MEASURE_SCHEMA.'+ 'MEASURE_REPRESENTATION_ITEM' , 'EXTENDED_MEASURE_REPRESENTATION_MIM.'+ 'VALUE_RANGE' , 'QUALIFIED_MEASURE_SCHEMA.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) <>1 ) ) =0;
  WR2: ( SIZEOF ( QUERY ( i <* SELF.items | 'QUALIFIED_MEASURE_SCHEMA.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) ) =1 ) AND ( SIZEOF ( QUERY ( i <* SELF.items | ( 'QUALIFIED_MEASURE_SCHEMA.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name = 'measuring method' ) ) ) =1 );
  WR3: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( ['QUALIFIED_MEASURE_SCHEMA.'+ 'MEASURE_REPRESENTATION_ITEM' , 'EXTENDED_MEASURE_REPRESENTATION_MIM.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) ) >0;
  WR4: ( SIZEOF ( USEDIN ( SELF , 'REPRESENTATION_SCHEMA.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_1' ) ) <=1 ) AND ( SIZEOF ( USEDIN ( SELF , 'REPRESENTATION_SCHEMA.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_2' ) ) =0 ) AND ( SIZEOF ( QUERY ( rr <* USEDIN ( SELF , 'REPRESENTATION_SCHEMA.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_1' ) | rr.rep_2.name = 'measuring direction' ) ) = SIZEOF ( USEDIN ( SELF , 'REPRESENTATION_SCHEMA.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_1' ) ) );
  WR5: ( SIZEOF ( USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr.definition , 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 ) ) =1 );
END_ENTITY;

ENTITY tactile_appearance_representation
  SUBTYPE OF (representation);
WHERE
  WR1: SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( ['QUALIFIED_MEASURE_SCHEMA.'+ 'MEASURE_REPRESENTATION_ITEM' , 'EXTENDED_MEASURE_REPRESENTATION_MIM.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) <>1 )) =0;
  WR2: SIZEOF ( QUERY ( i <* SELF.items | name ='depth' ) ) <=1;
  WR3: ( SIZEOF ( USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr.definition , 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 )) =1 );
END_ENTITY;

ENTITY visual_appearance_representation
  SUBTYPE OF (representation);
WHERE
  WR1: ( {3<= SIZEOF ( SELF.items ) <=9} ) AND ( SIZEOF ( QUERY ( i <* items | ( 'QUALIFIED_MEASURE_SCHEMA.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name IN [ 'colour id' , 'colour name' , 'lustre' , 'pattern' , 'transparency', 'orientation'] ) ) ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF ( ['QUALIFIED_MEASURE_SCHEMA.'+ 'MEASURE_REPRESENTATION_ITEM' , 'EXTENDED_MEASURE_REPRESENTATION_MIM.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) AND ( i.name IN ['refraction index' , 'opacity'] ) ) ) + SIZEOF ( QUERY ( i <* items | ( 'FILE_IDENTIFICATION_MIM.'+ 'DOCUMENT_FILE' IN TYPEOF ( i ) ) AND ( i.name IN [ 'texture map' ] ) ) ) = SIZEOF ( SELF.items ) );
  WR2: SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour id' )) =1;
  WR3: SIZEOF ( QUERY ( i <* SELF.items | i.name ='lustre' ) )=1;
  WR4: SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour name') ) <=1;
  WR5: SIZEOF ( QUERY ( i <* SELF.items | i.name ='pattern' ) )<=1;
  WR6: SIZEOF ( QUERY ( i <* SELF.items | i.name ='transparency') ) <=1;
  WR7: SIZEOF ( QUERY ( i <* SELF.items | i.name = 'texture map') ) <=1;
  WR8: SIZEOF ( QUERY ( i <* SELF.items | i.name ='refraction index' ) )<=1;
  WR9: SIZEOF ( QUERY ( i <* SELF.items | i.name ='opacity') ) <=1;
  WR10: SIZEOF ( QUERY ( i <* SELF.items | i.name ='orientation') ) <=1;
  WR11: ( SIZEOF ( USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr.definition , 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa.base_definition ) ) AND ( gpa\general_property_association.base_definition\general_property.name ='surface_condition' ) ) ) =1 )) =1 );
END_ENTITY;

RULE material_for_coating_layer FOR
(shape_aspect);
LOCAL
      coating_layers: SET OF shape_aspect := [];
    END_LOCAL;
    coating_layers:= QUERY( r <* shape_aspect | 
	  (r.name = 'coating layer') );
WHERE
  WR1: SIZEOF( QUERY( r <* coating_layers | SIZEOF(USEDIN(r , 'MATERIAL_PROPERTY_DEFINITION_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS'))<>1 )) = 0;
END_RULE;

RULE restrict_representation_for_surface_condition FOR
(property_definition_representation);
WHERE
  WR1: SIZEOF(QUERY(pdr <* property_definition_representation | NOT surface_condition_correlation(pdr.definition, pdr.used_representation) ))=0;
END_RULE;

RULE restrict_treatment_result FOR
(representation);
LOCAL
      treatment_results: SET OF representation := [];
    END_LOCAL;
    treatment_results:= QUERY( r <* representation | 
	  (r.name = 'treatment result') );
WHERE
  WR1: (SIZEOF( QUERY( r <* treatment_results | (SIZEOF(r.items) > 2) )) = 0) AND (SIZEOF( QUERY( r <* treatment_results | (SIZEOF( QUERY( i <* r.items | NOT ('QUALIFIED_MEASURE_SCHEMA.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) > 0) )) = 0);
  WR2: SIZEOF( QUERY( r <* treatment_results | (SIZEOF( QUERY( i <* r.items | i.name = 'result' )) = 0) )) = 0;
  WR3: SIZEOF( QUERY( r <* treatment_results | (SIZEOF( QUERY( i <* r.items | i.name = 'purpose' )) > 1) )) = 0;
END_RULE;

FUNCTION surface_condition_correlation
 (pd : property_definition; rep : representation) : LOGICAL;
CASE pd.name OF
      'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' : 
	  RETURN(pd.name = rep.name);
      OTHERWISE : RETURN(UNKNOWN);
    END_CASE;
END_FUNCTION;

END_SCHEMA;  -- Surface_conditions_mim


© ISO 2019 — All rights reserved