Application module: Surface conditions | ISO/TS 10303-1110:2019(E) © ISO |
(*
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