Integrated generic resource: Shape variation tolerances ISO 10303-47:2021(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 Shape aspect definition
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Shape aspect definition type definitions
   4.4 Shape aspect definition entity definitions
   4.5 Shape aspect definition subtype constraint definition
   4.6 Shape aspect definition rule definitions
5 Shape dimension
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Shape dimension type definitions
   5.4 Shape dimension entity definitions
6 Shape tolerance
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Shape tolerance type definitions
   6.4 Shape tolerance entity definitions
   6.5 Shape tolerance function definitions
   6.6 Shape tolerance rule definitions

A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Change history
Bibliography
Index

6 Shape tolerance schema

6.1 General

The shape_tolerance_schema provides the constructs for describing tolerances that apply to dimensions and to elements of shape_aspect. This schema includes two types of tolerance: plus-minus tolerance and geometrical tolerance. The plus-minus tolerance provides the constructs for specifying tolerances in one of two ways:

The representation of statistical tolerance may be associated with the direct specification of the upper and the lower limits of the plus-minus tolerance or with a geometric tolerance.

The geometrical tolerance provides the constructs for applying tolerance zones to elements of shape_aspects. A tolerance zone defines a region or an area within which a shape_aspect may vary and is bounded by a set of tolerance zone elements. These constructs support tolerances for the form, orientation, location, profile, and runout of a shape_aspect. A tolerance zone may be represented by specific geometry and is used for various tolerancing methods.

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the shape_tolerance_schema and identifies the necessary external references.

Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.

EXPRESS specification:

*)
SCHEMA shape_tolerance_schema;

REFERENCE FROM basic_attribute_schema    --  ISO 10303-41
  (get_id_value,
   id_attribute,
   id_attribute_select);

REFERENCE FROM measure_schema    --  ISO 10303-41
  (derive_dimensional_exponents,
   dimensional_exponents,
   length_measure_with_unit,
   measure_with_unit,
   measure_value,
   plane_angle_measure_with_unit);

REFERENCE FROM product_property_definition_schema    --  ISO 10303-41
  (product_definition_shape,
   shape_aspect,
   shape_aspect_relationship);

REFERENCE FROM product_property_representation_schema    --  ISO 10303-41
  (item_identified_representation_usage_definition);

REFERENCE FROM qualified_measure_schema    --  ISO 10303-45
  (measure_representation_item);

REFERENCE FROM representation_schema    --  ISO 10303-43
  (representation);

REFERENCE FROM shape_aspect_definition_schema    --  ISO 10303-47
  (datum_reference,
   datum_system,
   limit_condition,
   general_datum_reference);

REFERENCE FROM shape_dimension_schema    --  ISO 10303-47
  (dimensional_characteristic,
   dimensional_location,
   dimensional_size);

REFERENCE FROM support_resource_schema    --  ISO 10303-41
  (bag_to_set,
   identifier,
   label,
   text,
   type_check_function);
(*

NOTE 1   The schemas referenced above are specified in the following parts:

basic_attribute_schema ISO 10303-41
measure_schema ISO 10303-41
product_property_definition_schema ISO 10303-41
product_property_representation_schema ISO 10303-41
qualified_measure_schema ISO 10303-45
representation_schema ISO 10303-43
shape_aspect_definition_schema ISO 10303-47
shape_dimension_schema ISO 10303-47
support_resource_schema ISO 10303-41

NOTE 2   See Annex D for a graphical representation of this schema.

6.2 Fundamental concepts and assumptions

A toleranced dimension is an exact dimension with a plus-minus tolerance. A plus-minus tolerance limits the dimensional variation of a dimension of a product. The plus-minus tolerance range is limited by one of two methods: assigned values, which define the upper bound and lower bound of a dimension, or a standard tolerance as specified in ISO 286-l and ISO 286-2. The tolerance with a statistical distribution provides an additional specification of the variation of a dimension and may be used with either a plus-minus tolerance or a geometric tolerance.

Tolerance zones as defined in ISO 1101 or an equivalent standard are represented in ISO 10303 either implicitly or explicitly. A tolerance zone is explicitly represented by tolerance_zone. When no explicit tolerance zone is represented, the implcit tolerance zone is included in the geometric_tolerance.

A key entity of the shape_tolerance_schema is geometric_tolerance. Geometric_tolerance with subtypes and other related entities represent a tolerance frame as defined in ISO 1101.

NOTE 1   Alternatively a geometric_tolerance together with subtypes and other related entities can represent a feature control frame as defined in ASME Y14.5-2009 [11] or later editions of that standard.

The ISO 1101 concept of a toleranced feature is represented by the attribute toleranced_shape_aspect. The toleranced feature is either a shape_aspect, the whole product_definition_shape, a dimensional_size or a dimensional_location.

The first compartment of a tolerance frame specifies the kind of geometrical characteristic. For each characteristic a specific entity is defined:

The second compartment of a tolerance frame specifies a collection of information that is represented by several entities of this schema.

In the case that a tolerance frame has a third, and optionally, a fourth and fifth, compartment with references to one or several datums, the subtype geometric_tolerance_with_datum_reference shall be used. It's attribute datum_system references either a datum_system or a set of datum_references. See clause 4.1 for introduction of these concepts.

6.3 shape_tolerance_schema type definitions

6.3.1 area_unit_type   EXPRESS-G

The area_unit_type is an extensible list of types of area that is used by geometric_tolerance_with_defined_area_unit.

EXPRESS specification:

*)
TYPE area_unit_type = EXTENSIBLE ENUMERATION OF
   (circular,
    square,
    rectangular,
    cylindrical,
    spherical);
END_TYPE;
(*

Enumerated item definitions:

circular: the area is circular;

square: the area is square;

rectangular: the area is rectangular;

cylindrical: the area is cylindrical;

spherical: the area is spherical;

6.3.2 datum_system_or_reference   EXPRESS-G

The datum_system_or_reference type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE datum_system_or_reference = SELECT
   (datum_reference,
    datum_system);
END_TYPE;
(*

6.3.3 directed_tolerance_zone_type   EXPRESS-G

The directed_tolerance_zone_type is an extensible list of modifier types that is used by directed_tolerance_zone to indicate the direction of an "intersection plane".

EXPRESS specification:

*)
TYPE directed_tolerance_zone_type = ENUMERATION OF
   (perpendicular,
    parallel,
    including);
END_TYPE;
(*

Enumerated item definitions:

perpendicular: indicates that the "intersection plane" is directed perpendicular to the referenced datum.

parallel: indicates that the "intersection plane" is directed parallel to the referenced datum.

including: indicates that the "intersection plane" is directed so that it includes the referenced datum.

6.3.4 geometric_tolerance_auxiliary_classification_enum   EXPRESS-G

The geometric_tolerance_auxiliary_classification_enum is an extensible list of types of auxiliary classification that is used by geometric_tolerance_auxiliary_classification.

EXPRESS specification:

*)
TYPE geometric_tolerance_auxiliary_classification_enum = ENUMERATION OF
   (all_over,
    unless_otherwise_specified);
END_TYPE;
(*

Enumerated item definitions:

all_over: unless otherwise specified the rules governing all over defined in ISO 1101 shall apply.

NOTE 1   Alternatively all over can be used according to the specifications given in ASME Y14.5-2009 [11].

unless_otherwise_specified: the specification applies to all surfaces for which no other tolerance of the same type is defined.

NOTE 2   The use of "unless otherwise specified" is described in ASME Y14.5-2009 [11].

6.3.5 geometric_tolerance_modifier   EXPRESS-G

The geometric_tolerance_modifier is the list of modifiers that is used by geometric_tolerance_with_modifiers.

EXPRESS specification:

*)
TYPE geometric_tolerance_modifier = EXTENSIBLE ENUMERATION OF
   (circle_a,
    maximum_material_requirement,
    least_material_requirement,
    reciprocity_requirement,
    any_cross_section,
    free_state,
    common_zone,
    minor_diameter,
    major_diameter,
    pitch_diameter,
    line_element,
    not_convex,
    statistical_tolerance,
    tangent_plane,
    each_radial_element,
    separate_requirement,
    united_feature,
    associated_minmax_feature,
    associated_least_square_feature,
    associated_minimum_inscribed_feature,
    associated_tangent_feature,
    associated_maximum_inscribed_feature,
    reference_minimax_feature_without_constraint,
    reference_minimax_feature_with_external_material_constraint,
    reference_minimax_feature_with_internal_material_constraint,
    reference_least_square_feature_without_constraint,
    reference_least_square_feature_with_external_material_constraint,
    reference_least_square_feature_with_internal_material_constraint,
    reference_minimum_circumscribed_feature,
    reference_maximum_inscribed_feature,
    total_range_deviations,
    peak_height,
    valley_depth,
    standard_deviation);
END_TYPE;
(*

Enumerated item definitions:

circle_a: indicates that the toleranced feature is a median feature in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for median feature is Ⓐ.

maximum_material_requirement: indicates that maximum material requirement applies in accordance with ISO 2692 unless otherwise specified;

NOTE    The symbol for maximum material requirement is Ⓜ.

least_material_requirement: indicates that least material requirement applies in accordance with ISO 2692 unless otherwise specified;

NOTE    The symbol for least material requirement is Ⓛ.

reciprocity_requirement: indicates that reciprocity requirement applies in accordance with ISO 2692 unless otherwise specified;

NOTE    The symbol for reciprocity requirement is Ⓡ.

any_cross_section: indicates that any cross section applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for any cross section is ACS.

free_state: indicates that free state applies in accordance with ISO 10579 unless otherwise specified;

NOTE    The symbol for free state is Ⓕ.

common_zone: indicates that common zone applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for common zone is CZ.

minor_diameter: indicates that minor diameter applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for minor diameter is LD.

major_diameter: indicates that major diameter applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for major diameter is MD.

pitch_diameter: indicates that pitch diameter applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for pitch diameter is PD.

line_element: indicates that line element applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for line element is LE.

not_convex: indicates that not convex applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for not convex is NC.

statistical_tolerance: indicates that the tolerance is based on statistical tolerances;

NOTE    For ASME Y14.5-2009 [11] this is indicated by <ST>.

tangent_plane: indicates that the datum is the tangent plane established by contacting points;

NOTE 1   For ASME Y14.5-2009 [11] this is indicated by Ⓣ.

NOTE 2   The associated_maximum_inscribed_feature is used for ISO 1101

each_radial_element: indicates that the tolerance zone applies to each radial element individually.

NOTE    For ASME Y14.5-2009 [11] this is indicated by EACH RADIAL ELEMENT.

separate_requirement: indicates that geometric_tolerance is a separate requirement;

NOTE    For ASME Y14.5-2009 [11] this is indicated by SEP REQT.

united_feature: indicates that united feature applies in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for united feature is UF.

associated_minmax_feature: indicates that the toleranced feature specification element is the associated minimax (Chebyshev) feature in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for minimax (Chebyshev) feature is Ⓒ.

associated_least_square_feature: indicates that the toleranced feature specification element is the least squares (Gaussian) feature in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for least squares (Gaussian) feature is Ⓖ.

associated_minimum_inscribed_feature: indicates that the toleranced feature specification element is the associated minimum circumscribed feature in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for minimum circumscribed feature is Ⓝ.

associated_tangent_feature: indicates that the toleranced feature specification element is the associated tangent feature in accordance with ISO 1101 unless otherwise specified;

NOTE 1   The symbol for tangent feature is Ⓣ.

NOTE 2   The tangent_plane is used for ASME Y14.5-2009 [11]

associated_maximum_inscribed_feature: indicates that the toleranced feature specification element is the maximum inscribed feature in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol for maximum inscribed feature is Ⓧ.

reference_minimax_feature_without_constraint: indicates that the toleranced feature specification element is the minimax (Chebyshev) association without additional constraints in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is C.

reference_minimax_feature_with_external_material_constraint: indicates that the toleranced feature specification element is the minimax (Chebyshev) association with the constraint external to the material in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is CE.

reference_minimax_feature_with_internal_material_constraint: indicates that the toleranced feature specification element is the minimax (Chebyshev) association with the constraint internal to the material in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is CI.

reference_least_square_feature_without_constraint: indicates that the toleranced feature specification element is the least squares (Gaussian) association in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is G.

reference_least_square_feature_with_external_material_constraint: indicates that the toleranced feature specification element is the least squares (Gaussian) association with the constraint external to the material in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is GE.

reference_least_square_feature_with_internal_material_constraint: indicates that the toleranced feature specification element is the least squares (Gaussian) association with the constraint internal to the material in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is GI.

reference_minimum_circumscribed_feature: indicates that the toleranced feature specification element is the maximum inscribed association in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is X.

reference_maximum_inscribed_feature: indicates that the toleranced feature specification element is the minimum circumscribed association in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is N.

total_range_deviations: indicates that the parameter specification elements is the total range of deviations in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is T.

peak_height: indicates that the parameter specification elements is the peak height in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is P.

valley_depth: indicates that the toleranced feature specification element is the valley depth in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is V.

standard_deviation: indicates that the parameter specification elements is the square root of the sum of the squares of the residuals or standard deviation of the toleranced feature relative to the reference feature in accordance with ISO 1101 unless otherwise specified;

NOTE    The symbol is Q.

6.3.6 geometric_tolerance_target   EXPRESS-G

The geometric_tolerance_target type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE geometric_tolerance_target = SELECT
   (dimensional_location,
    dimensional_size,
    product_definition_shape,
    shape_aspect);
END_TYPE;
(*

6.3.7 gps_filtration_specification_target   EXPRESS-G

The gps_filtration_specification_target type is an extensible list of alternate data types. It provides a mechanism to refer to instances of the data types included in the gps_filtration_specification_target type or in its extensions.

NOTE  The list of entity data types will be extended in application resources that use the constructs of this resource.

EXPRESS specification:

*)
TYPE gps_filtration_specification_target = EXTENSIBLE GENERIC_ENTITY SELECT
   (geometric_tolerance);
END_TYPE;
(*

6.3.8 gps_filtration_type   EXPRESS-G

The gps_filtration_type type is an extensible list of alternate data types. It provides a mechanism to refer to instances of the data types included in the gps_filtration_type type or in its extensions.

NOTE  The list of entity data types will be extended in application resources that use the constructs of this resource.

EXPRESS specification:

*)
TYPE gps_filtration_type = EXTENSIBLE SELECT
   (geometric_tolerance_modifier);
END_TYPE;
(*

6.3.9 length_or_plane_angle_measure_with_unit_select   EXPRESS-G

The length_or_plane_angle_measure_with_unit_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE length_or_plane_angle_measure_with_unit_select = SELECT
   (length_measure_with_unit,
    plane_angle_measure_with_unit);
END_TYPE;
(*

6.3.10 oriented_tolerance_zone_type   EXPRESS-G

The oriented_tolerance_zone_type is a list of modifier types that is used by oriented_tolerance_zone to indicate the orientation of an "orientation plane".

EXPRESS specification:

*)
TYPE oriented_tolerance_zone_type = ENUMERATION OF
   (perpendicular,
    parallel,
    angular);
END_TYPE;
(*

Enumerated item definitions:

perpendicular: indicates that the "orientation plane" is oriented perpendicular to the referenced datum.

parallel: indicates that the "orientation plane" is oriented parallel to the referenced datum.

angular: indicates that the "orientation plane" is oriented under some specified angle to the referenced datum.

6.3.11 shape_tolerance_select   EXPRESS-G

The shape_tolerance_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. A shape_tolerance_select type indicates that a tolerance can either be a geometric_tolerance or a plus_minus_tolerance.

EXPRESS specification:

*)
TYPE shape_tolerance_select = SELECT
   (geometric_tolerance,
    plus_minus_tolerance);
END_TYPE;
(*

6.3.12 st_id_attribute_select   EXPRESS-G

The st_id_attribute_select type is an extension of the id_attribute_select type. It adds the data type geometric_tolerance to the list of alternate data types.

EXPRESS specification:

*)
TYPE st_id_attribute_select = SELECT BASED_ON id_attribute_select WITH
   (geometric_tolerance);
END_TYPE;
(*

6.3.13 sts_item_identified_representation_usage_definition   EXPRESS-G

The sts_item_identified_representation_usage_definition type is an extension of the item_identified_representation_usage_definition type. It adds the data type geometric_tolerance to the list of alternate data types.

NOTE  The list of entity data types will be extended in application resources that use the constructs of this resource.

EXPRESS specification:

*)
TYPE sts_item_identified_representation_usage_definition = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON item_identified_representation_usage_definition WITH
   (geometric_tolerance);
END_TYPE;
(*

6.3.14 tolerance_method_definition   EXPRESS-G

The tolerance_method_definition type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The tolerance_method_definition type is the identification of the method used to generate a tolerance value.

EXPRESS specification:

*)
TYPE tolerance_method_definition = SELECT
   (limits_and_fits,
    tolerance_value);
END_TYPE;
(*

6.3.15 tolerance_zone_target   EXPRESS-G

The tolerance_zone_target type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE tolerance_zone_target = SELECT
   (dimensional_location,
    dimensional_size,
    geometric_tolerance,
    general_datum_reference);
END_TYPE;
(*

6.4 shape_tolerance_schema entity definitions

6.4.1 angularity_tolerance   EXPRESS-G

An angularity_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified the rules governing angularity tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively angularity tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

The specified angle shall not be a multiple of 90 degrees. In the case of 0 or 180 degrees, a parallelism_tolerance shall be used. In the case of 90 or 270 degrees, a perpendicularity_tolerance shall be used. The specified angle shall be defined using an instance of angular_location. The toleranced_shape_aspect is either a plane or a straight line.

EXPRESS specification:

*)
ENTITY angularity_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.2 circular_runout_tolerance   EXPRESS-G

A circular_runout_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified, the rules governing circular run-out tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively circular run-out tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY circular_runout_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.3 coaxiality_tolerance   EXPRESS-G

A coaxiality_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified, the rules governing coaxiality tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively coaxiality tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY coaxiality_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.4 concentricity_tolerance   EXPRESS-G

A concentricity_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified, the rules governing concentricity tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively concentricity tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY concentricity_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.5 cylindricity_tolerance   EXPRESS-G

A cylindricity_tolerance is a type of geometric_tolerance. Unless otherwise specified, the rules governing cylindricity tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively cylindricity tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY cylindricity_tolerance
  SUBTYPE OF (geometric_tolerance);
WHERE
  WR1: NOT ('SHAPE_TOLERANCE_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
(*

Formal propositions:

WR1: The cylindricity_tolerance shall not be of type geometric_tolerance_with_datum_reference.

6.4.6 dimension_related_tolerance_zone_element   EXPRESS-G

A dimension_related_tolerance_zone_element is an association of a tolerance zone definition with a locating dimension.

NOTE    This entity is deprecated. It should not be used for new implementations.

EXPRESS specification:

*)
ENTITY dimension_related_tolerance_zone_element;
  related_dimension : dimensional_location;
  related_element : tolerance_zone_definition;
END_ENTITY;
(*

Attribute definitions:

related_dimension: a dimension that positions the tolerance_zone_definition.

related_element: a tolerance_zone_definition that is defined with a specific location.

6.4.7 directed_tolerance_zone   EXPRESS-G

A directed_tolerance_zone is a type of tolerance_zone_with_datum that represents an "intersection plane" for a geometric tolerance as defined in ISO 1101.

EXPRESS specification:

*)
ENTITY directed_tolerance_zone
  SUBTYPE OF (tolerance_zone_with_datum);
  direction : directed_tolerance_zone_type;
END_ENTITY;
(*

Attribute definitions:

direction: specifies the direction of the tolerance zone in respect to the referenced datum. It is either perpendicular, parallel or including.

6.4.8 flatness_tolerance   EXPRESS-G

A flatness_tolerance is a type of geometric_tolerance. Unless otherwise specified, the rules governing flatness tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively flatness tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY flatness_tolerance
  SUBTYPE OF (geometric_tolerance);
WHERE
  WR1: NOT ('SHAPE_TOLERANCE_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
(*

Formal propositions:

WR1: The flatness_tolerance shall not be of type geometric_tolerance_with_datum_reference.

6.4.9 geometric_tolerance   EXPRESS-G

A geometric_tolerance is the specification of the allowable range within which a geometrical property of a product may deviate. A geometric_tolerance is a geometric_tolerance_with_datum_reference and/or a geometric_tolerance_with_defined_unit and/or may be either a geometric_tolerance_with_modifiers or a modified_geometric_tolerance and/or an unequally_disposed_geometric_tolerance and/or one of a cylindricity_tolerance, a flatness_tolerance, a line_profile_tolerance, a position_tolerance, a roundness_tolerance, a straightness_tolerance, a surface_profile_tolerance.

EXPRESS specification:

*)
ENTITY geometric_tolerance
  ABSTRACT SUPERTYPE OF (geometric_tolerance_with_datum_reference
                         ANDOR geometric_tolerance_with_defined_unit
                        ANDOR ONEOF (geometric_tolerance_with_modifiers,
                             modified_geometric_tolerance)
                      ANDOR unequally_disposed_geometric_tolerance
                     ANDOR ONEOF (cylindricity_tolerance,
                          flatness_tolerance,
                          line_profile_tolerance,
                          position_tolerance,
                          roundness_tolerance,
                          straightness_tolerance,
                          surface_profile_tolerance));
  name : label;
  description : OPTIONAL text;
  magnitude : OPTIONAL length_measure_with_unit;
  toleranced_shape_aspect : geometric_tolerance_target;
DERIVE
  controlling_shape : product_definition_shape := sts_get_product_definition_shape(toleranced_shape_aspect);
  id : identifier := get_id_value(SELF);
INVERSE
  auxiliary_classification : SET[0:?] OF geometric_tolerance_auxiliary_classification FOR described_item;
  tolerance_relationship : SET[0:?] OF geometric_tolerance_relationship FOR relating_geometric_tolerance;
UNIQUE
  UR1: id, controlling_shape;
WHERE
  WR1: magnitude\measure_with_unit.value_component >= 0.0;
  WR2: EXISTS(controlling_shape);
  WR3: NOT ('PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF(toleranced_shape_aspect)) OR (toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape :=: toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape);
  WR4: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  WR5: SIZEOF(QUERY( tr <* tolerance_relationship | tr.name = 'composite tolerance')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the identification of the geometrical tolerance type.

NOTE 1   This identification may be one of the geometrical tolerance types specified in ISO 1101 when used to represent International Standard geometrical tolerances.

EXAMPLE    Position, straightness, concentricity, parallelism, circular runout, etc., are names for geometrical tolerance types.

description: a supplementary note that shall be used to convey additional requirements associated with geometric tolerance.

NOTE 2   This description may state requirements that may have an affect on the geometric_tolerance for specific applications.

The value of this attribute need not be specified.

magnitude: the size of a tolerance. The value of this attribute need not be specified.

toleranced_shape_aspect: the shape_aspect to which the tolerance applies.

controlling_shape: specifies the product_definition_shape to which this geometric_tolerance applies through its toleranced_shape_aspect attribute.

id: the identifier that distinguishes the geometric_tolerance.

auxiliary_classification: specifies a set of geometric_tolerance_auxiliary_classification associated to the geometric_tolerance. A geometric_tolerance_auxiliary_classification need not be provided for a geometric_tolerance.

tolerance_relationship: specifies a set of geometric_tolerance_relationship associated to the geometric_tolerance. A geometric_tolerance_relationship need not be provided for a geometric_tolerance.

Formal propositions:

UR1: The combination of name and controlling_shape shall be unique within a population of geometric_tolerance.

WR1: The value of magnitude shall be equal to or greater than zero.

WR2: The attribute controlling_shape shall have a value.

WR3: In the case that toleranced_shape_aspect is a dimensional_location the inherited attributes relating_shape_aspect and related_shape_aspect shall reference to shape_aspects for the same product_definition_shape.

WR4: Each geometric_tolerance shall be the identified_item in at most one id_attribute.

WR5: Each geometric_tolerance shall be reference by no more than one geometric_tolerance_relationship with name = 'composite tolerance' with the attribute relating_geometric_tolerance.

6.4.10 geometric_tolerance_auxiliary_classification   EXPRESS-G

A geometric_tolerance_auxiliary_classification is an additional classification applied to a geometric_tolerance.

EXPRESS specification:

*)
ENTITY geometric_tolerance_auxiliary_classification;
  attribute_value : geometric_tolerance_auxiliary_classification_enum;
  described_item : geometric_tolerance;
END_ENTITY;
(*

Attribute definitions:

attribute_value: specifies the geometric_tolerance_auxiliary_classification_enum.

described_item: a geometric_tolerance to which the geometric_tolerance_auxiliary_classification applies.

6.4.11 geometric_tolerance_relationship   EXPRESS-G

A geometric_tolerance_relationship is an association between two geometric_tolerances.

EXPRESS specification:

*)
ENTITY geometric_tolerance_relationship;
  name : label;
  description : text;
  relating_geometric_tolerance : geometric_tolerance;
  related_geometric_tolerance : geometric_tolerance;
WHERE
  WR1: NOT(name = 'composite tolerance') OR (('SHAPE_TOLERANCE_SCHEMA.POSITION_TOLERANCE' IN TYPEOF(relating_geometric_tolerance)) AND ('SHAPE_TOLERANCE_SCHEMA.POSITION_TOLERANCE' IN TYPEOF(related_geometric_tolerance))) OR (('SHAPE_TOLERANCE_SCHEMA.LINE_PROFILE_TOLERANCE' IN TYPEOF(relating_geometric_tolerance)) AND ('SHAPE_TOLERANCE_SCHEMA.LINE_PROFILE_TOLERANCE' IN TYPEOF(related_geometric_tolerance))) OR (('SHAPE_TOLERANCE_SCHEMA.SURFACE_PROFILE_TOLERANCE' IN TYPEOF(relating_geometric_tolerance)) AND ('SHAPE_TOLERANCE_SCHEMA.SURFACE_PROFILE_TOLERANCE' IN TYPEOF(related_geometric_tolerance)));
  WR2: NOT(name = 'composite tolerance') OR (relating_geometric_tolerance\geometric_tolerance.toleranced_shape_aspect :=: related_geometric_tolerance\geometric_tolerance.toleranced_shape_aspect);
  WR3: acyclic_geometric_tolerance_relationship(SELF, [related_geometric_tolerance], 'SHAPE_TOLERANCE_SCHEMA.GEOMETRIC_TOLERANCE');
END_ENTITY;
(*

Attribute definitions:

name: the word or group of words by which the geometric tolerance relationship is referred.

description: text that describes the relationship.

relating_geometric_tolerance: one of the geometric_tolerances that takes part in the relationship.

related_geometric_tolerance: the other geometric_tolerance that takes part in the relationship. If one of the geometric_tolerances is dependent on the other, this attribute shall be the dependent one.

Formal propositions:

WR1: For a geometric_tolerance_relationship with the name 'composite tolerance', the related and the relating subtype should be both either a position_tolerance, a line_profile_tolerance or a surface_profile_tolerance

WR2: For a geometric_tolerance_relationship with the name 'composite tolerance', the related and relating geometric_tolerances shall refer to the same shape_aspect with the attribute toleranced_shape_aspect.

WR3: The graph of all geometric_tolerance_relationship shall be acyclic.

6.4.12 geometric_tolerance_with_datum_reference   EXPRESS-G

A geometric_tolerance_with_datum_reference is a type of geometric_tolerance that references one or more datums for specifying the tolerance condition of a shape_aspect. Each geometric_tolerance_with_datum_reference may be either an angularity_tolerance, a circular_runout_tolerance, a coaxiality_tolerance, a concentricity_tolerance, a parallelism_tolerance, a perpendicularity_tolerance, a symmetry_tolerance, or a total_runout_tolerance.

EXPRESS specification:

*)
ENTITY geometric_tolerance_with_datum_reference
  SUPERTYPE OF (ONEOF (angularity_tolerance,
                       circular_runout_tolerance,
                       coaxiality_tolerance,
                       concentricity_tolerance,
                       parallelism_tolerance,
                       perpendicularity_tolerance,
                       symmetry_tolerance,
                       total_runout_tolerance))
  SUBTYPE OF (geometric_tolerance);
  datum_system : SET[1:?] OF datum_system_or_reference;
WHERE
  WR1: (SIZEOF(QUERY(ds <* datum_system | 'SHAPE_TOLERANCE_SCHEMA.' + 'DATUM_SYSTEM' in TYPEOF(ds)))=0) OR (SIZEOF(datum_system)=1);
END_ENTITY;
(*

Attribute definitions:

datum_system: specifies the datum system or single datum reference the datum or combination of datums that define a reference for a geometric_tolerance.

NOTE    This attribute is not equivalent to datum system as defined in ISO 5459.

Formal propositions:

WR1: If the attribute datum_system contains a datum_system there shall be only one and there shall be no datum_references.

6.4.13 geometric_tolerance_with_defined_area_unit   EXPRESS-G

A geometric_tolerance_with_defined_area_unit is a type of geometric_tolerance_with_defined_unit specified on a per area unit basis of the shape_aspect.

EXPRESS specification:

*)
ENTITY geometric_tolerance_with_defined_area_unit
  SUBTYPE OF (geometric_tolerance_with_defined_unit);
  area_type : area_unit_type;
  second_unit_size : OPTIONAL length_or_plane_angle_measure_with_unit_select;
WHERE
  WR1: NOT (EXISTS(second_unit_size) XOR (area_type IN [area_unit_type.rectangular, area_unit_type.cylindrical, area_unit_type.spherical]));
  WR2: NOT(area_type = area_unit_type.cylindrical) OR ('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND ('MEASURE_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size));
  WR3: NOT (area_type = area_unit_type.rectangular) OR ('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND ('MEASURE_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size));
  WR4: NOT(area_type = area_unit_type.spherical) OR ('MEASURE_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND ('MEASURE_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size));
  WR5: NOT(area_type = area_unit_type.spherical) OR (SIZEOF(QUERY (tz <* USEDIN(SELF,'SHAPE_TOLERANCE_SCHEMA.TOLERANCE_ZONE.DEFINING_TOLERANCE') | ('SHAPE_TOLERANCE_SCHEMA.ORIENTED_TOLERANCE_ZONE' IN TYPEOF(tz)) )) <> 0 );
END_ENTITY;
(*

Attribute definitions:

area_type: specifies whether the area is circular, square, or rectangular.

second_unit_size: the second unit measure over which a tolerance applies. The value of this attribute need not be specified.

Formal propositions:

WR1: A value for second_unit_size shall be provided if and only if the area_type is rectangular, cylindrical, or spherical.

WR2: If the area_type is cylindrical, the unit_size shall be a length_measure_with_unit and the second_unit_size shall be a plane_angle_measure_with_unit.

WR3: If the area_type is rectangular, the unit_size shall be a length_measure_with_unit and the second_unit_size shall be a length_measure_with_unit.

WR4: If the area_type is spherical, the unit_size shall be a plane_angle_measure_with_unit and the second_unit_size shall be a plane_angle_measure_with_unit.

WR5: If the area_type is spherical, an oriented_tolerance_zone shall be specified.

6.4.14 geometric_tolerance_with_defined_unit   EXPRESS-G

A geometric_tolerance_with_defined_unit is a type of geometric_tolerance specified on a per length unit basis of the shape_aspect.

NOTE    The use and application of the per unit basis are described in ISO 1101.

EXAMPLE    A straightness tolerance defines the allowable amount of bending of a product feature on a unit length basis. A flatness tolerance defines the allowable amount of warping of a surface on a per square unit area basis.

EXPRESS specification:

*)
ENTITY geometric_tolerance_with_defined_unit
  SUBTYPE OF (geometric_tolerance);
  unit_size : length_or_plane_angle_measure_with_unit_select;
WHERE
  WR1: ('NUMBER' IN TYPEOF (unit_size\measure_with_unit.value_component)) AND (unit_size\measure_with_unit.value_component > 0.0);
END_ENTITY;
(*

Attribute definitions:

unit_size: the unit measure over which a tolerance applies.

Formal propositions:

WR1: The unit length or area over which the tolerance is applied shall be defined by a positive value.

6.4.15 geometric_tolerance_with_maximum_tolerance   EXPRESS-G

A geometric_tolerance_with_maximum_tolerance is a type of geometric_tolerance_with_modifiers that limits the allowable maximum geometric tolerance in combination with a maximum material requirement or least material requirement modifier.

NOTE    The maximum geometric tolerance value is described in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY geometric_tolerance_with_maximum_tolerance
  SUBTYPE OF (geometric_tolerance_with_modifiers);
  maximum_upper_tolerance : length_measure_with_unit;
WHERE
  WR1: (geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers) OR (geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers);
  WR2: (maximum_upper_tolerance\measure_with_unit.unit_component = SELF\geometric_tolerance.magnitude\measure_with_unit.unit_component) AND (maximum_upper_tolerance\measure_with_unit.value_component > SELF\geometric_tolerance.magnitude\measure_with_unit.value_component);
END_ENTITY;
(*

Attribute definitions:

maximum_upper_tolerance: specifies the limit.

Formal propositions:

WR1: A geometric_tolerance_with_maximum_tolerance shall only be used in combination with a maximum material requirement or least material requirement modifier

WR2: The unit of maximum_upper_tolerance shall be identical to the unit of magnitude. The value of maximum_upper_tolerance shall be greater than the value of magnitude.

6.4.16 geometric_tolerance_with_modifiers   EXPRESS-G

A geometric_tolerance_with_modifiers is a type of geometric_tolerance that indicates additional properties of the tolerance.

EXPRESS specification:

*)
ENTITY geometric_tolerance_with_modifiers
  SUBTYPE OF (geometric_tolerance);
  modifiers : SET[1:?] OF geometric_tolerance_modifier;
WHERE
  WR1: NOT (geometric_tolerance_modifier.circle_a IN modifiers) OR (('PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT' IN TYPEOF(SELF\geometric_tolerance.toleranced_shape_aspect)) AND (SELF\geometric_tolerance.toleranced_shape_aspect\shape_aspect.product_definitional = TRUE) OR ('SHAPE_DIMENSION_SCHEMA.DIMENSIONAL_SIZE' IN TYPEOF(SELF\geometric_tolerance.toleranced_shape_aspect)));
END_ENTITY;
(*

Attribute definitions:

modifiers: specifies the set of properties that affect the geometric tolerance. There shall exist one or more geometric_tolerance_modifiers for the geometric_tolerance_with_modifiers.

Formal propositions:

WR1: If the modifier circle-A is provided, then the toleranced_shape_aspect shall be on the surface.

6.4.17 gps_filter   EXPRESS-G

A gps_filter is a specification of a filtering element of the toleranced feature. Unless otherwise specified the rules governing filter specification element defined in ISO 1101 shall apply.

EXPRESS specification:

*)
ENTITY gps_filter;
  filter_type : gps_filtration_type;
  filter_data : LIST[1:?] OF measure_with_unit;
INVERSE
  owner : gps_filtration_specification FOR filter_data;
WHERE
  WR1: NOT ('SHAPE_TOLERANCE_SCHEMA.GEOMETRIC_TOLERANCE_WITH_MODIFIERS' IN TYPEOF(owner\gps_filtration_specification.base_target)) OR (SIZEOF([ geometric_tolerance_modifier.reference_minimax_feature_without_constraint, geometric_tolerance_modifier.reference_minimax_feature_with_external_material_constraint, geometric_tolerance_modifier.reference_minimax_feature_with_internal_material_constraint, geometric_tolerance_modifier.reference_least_square_feature_without_constraint, geometric_tolerance_modifier.reference_least_square_feature_with_external_material_constraint, geometric_tolerance_modifier.reference_least_square_feature_with_internal_material_constraint, geometric_tolerance_modifier.reference_minimum_circumscribed_feature, geometric_tolerance_modifier.reference_maximum_inscribed_feature, geometric_tolerance_modifier.total_range_deviations, geometric_tolerance_modifier.peak_height, geometric_tolerance_modifier.valley_depth, geometric_tolerance_modifier.standard_deviation ] * owner\gps_filtration_specification.base_target\geometric_tolerance_with_modifiers.modifiers) <> 0 );
END_ENTITY;
(*

Attribute definitions:

filter_type: specifies the filtering element type.

filter_data: specifies the list of value of the filter element.

owner: specifies the filtering list of value of the filter element.

Formal propositions:

WR1: if a gps_filter is be used with geometric_tolerance_with_modifiers then the modifiers shall not contains one or more of the following modifiers:

Informal propositions:

IP1: The content of the data set is governed by ISO 1101 or other GPS standards.

6.4.18 gps_filtration_specification   EXPRESS-G

A gps_filtration_specification is a specification of the filtering of the toleranced feature. Unless otherwise specified the rules governing filtering specification defined in ISO 1101 shall apply.

EXPRESS specification:

*)
ENTITY gps_filtration_specification;
  base_target : gps_filtration_specification_target;
  filter_data : LIST[1:?] OF gps_filter;
END_ENTITY;
(*

Attribute definitions:

base_target: specifies the toleranced feature on which the filter applies.

filter_data: specifies the list of filters.

Informal propositions:

IP1: The content of the data set is governed by ISO 1101 or other GPS standards.

6.4.19 limits_and_fits   EXPRESS-G

A limits_and_fits is a pre-defined fit system for specifying the tolerances associated with the assembly of mating product features. Unless otherwise specified, the rules governing limits and fits defined in ISO 286-1 and ISO 286-2 shall apply.

EXPRESS specification:

*)
ENTITY limits_and_fits;
  form_variance : label;
  zone_variance : label;
  grade : label;
  source : text;
END_ENTITY;
(*

Attribute definitions:

form_variance: the fundamental deviation code.

NOTE    The characters "A" to "ZC" for holes or "a" to "zc" for shafts are used for fundamental deviation.

zone_variance: specifies whether the tolerance declaration applies to a "cylinder" or "opposed parallel planes".

NOTE    An empty string may be provided.

grade: the designation of the standard tolerance grade.

EXAMPLE    IT7 is a standard tolerance grade.

source: the description of the place for additional information and requirements on this tolerance.

NOTE    An empty string may be provided.

6.4.20 line_profile_tolerance   EXPRESS-G

A line_profile_tolerance is a type of geometric_tolerance. Unless otherwise specified, the rules governing profile tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively profile tolerance of a line can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY line_profile_tolerance
  SUBTYPE OF (geometric_tolerance);
END_ENTITY;
(*

6.4.21 modified_geometric_tolerance   EXPRESS-G

A modified_geometric_tolerance is a type of geometric_tolerance with a material limit condition that applies to the shape_aspect being toleranced.

NOTE    The entity modified_geometric_tolerance is deprecated. For new implementations it is recommended that geometric_tolerance_with_modifiers be used.

EXPRESS specification:

*)
ENTITY modified_geometric_tolerance
  SUBTYPE OF (geometric_tolerance);
  modifier : limit_condition;
END_ENTITY;
(*

Attribute definitions:

modifier: the limit_condition that is assigned to a geometrical tolerance.

Informal propositions:

IP1: The SELF\toleranced_shape_aspect shall be a shape_aspect defining a product feature that has size characteristics.

6.4.22 non_uniform_zone_definition   EXPRESS-G

A non_uniform_zone_definition is a type of tolerance_zone_definition The boundaries of a non_uniform_zone_definition may have any shape.

NOTE    Non-uniform zone is described in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY non_uniform_zone_definition
  SUBTYPE OF (tolerance_zone_definition);
END_ENTITY;
(*

6.4.23 oriented_tolerance_zone   EXPRESS-G

A oriented_tolerance_zone is a type of tolerance_zone_with_datum that represents an "orientation plane" for a geometric tolerance as defined in ISO 1101.

EXPRESS specification:

*)
ENTITY oriented_tolerance_zone
  SUBTYPE OF (tolerance_zone_with_datum);
  orientation : oriented_tolerance_zone_type;
  angle : OPTIONAL plane_angle_measure_with_unit;
WHERE
  WR1: (orientation <> oriented_tolerance_zone_type.angular) XOR EXISTS(angle);
END_ENTITY;
(*

Attribute definitions:

orientation: specifies the orientation of the tolerance zone in respect to the referenced datum. It is either perpendicular, parallel or angular.

angle: specifies an additional angle of the tolerance zone orientation in respect to the referenced datum.

Formal propositions:

WR1: An angle value shall be specified if and only if the orientation is of type angular.

6.4.24 parallelism_tolerance   EXPRESS-G

A parallelism_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified, the rules governing parallelism tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively parallelism tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY parallelism_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.25 perpendicularity_tolerance   EXPRESS-G

A perpendicularity_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified, the rules governing perpendicularity tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively perpendicularity tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY perpendicularity_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.26 plus_minus_tolerance   EXPRESS-G

A plus_minus_tolerance is the specification of the limits within which the value of a dimension may vary. A plus_minus_tolerance may have a range specified by either a tolerance_value or a limits_and_fits.

EXPRESS specification:

*)
ENTITY plus_minus_tolerance;
  range : tolerance_method_definition;
  toleranced_dimension : dimensional_characteristic;
UNIQUE
  UR1: toleranced_dimension;
END_ENTITY;
(*

Attribute definitions:

range: the limits that, when applied to the dimension value, define the allowable variation for the dimension.

toleranced_dimension: the dimension to which the plus_minus_tolerance applies

Formal propositions:

UR1: There shall be only one plus_minus_tolerance for a dimension.

6.4.27 position_tolerance   EXPRESS-G

A position_tolerance is a type of geometric_tolerance. Unless otherwise specified, the rules governing position tolerance defined in ISO 1101 and ISO 5458 shall apply.

The location of the tolerance zone shall be specified with instances of dimensional_location.

NOTE 1   Alternatively position tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

NOTE 2   When the toleranced_shape_aspect is a composite_shape_aspect, e.g. eight holes, the tolerance zone may but need not be defined by referenced datums (see ISO 1101).

NOTE 3   The type dimensional_location is defined in ISO 10303-47.

EXPRESS specification:

*)
ENTITY position_tolerance
  SUBTYPE OF (geometric_tolerance);
END_ENTITY;
(*

6.4.28 projected_zone_definition   EXPRESS-G

A projected_zone_definition is a type of tolerance_zone_definition. Unless otherwise specified, the rules governing projected tolerance zone defined in ISO 1101 shall apply.

EXPRESS specification:

*)
ENTITY projected_zone_definition
  SUBTYPE OF (tolerance_zone_definition);
  projection_end : shape_aspect;
  projected_length : length_measure_with_unit;
WHERE
  WR1: ('NUMBER' IN TYPEOF (projected_length\measure_with_unit.value_component)) AND (projected_length\measure_with_unit.value_component > 0.0);
  WR2: (derive_dimensional_exponents (projected_length\measure_with_unit.unit_component)= dimensional_exponents(1,0,0,0,0,0,0));
END_ENTITY;
(*

Attribute definitions:

projection_end: the shape_aspect from which the projected tolerance zone originates.

projected_length: the distance from the feature being toleranced.

Formal propositions:

WR1: The value of the projected_length shall be greater than 0.0.

WR2: The dimensional exponents of projected_length shall characterize a length unit.

6.4.29 projected_zone_definition_with_offset   EXPRESS-G

A projected_zone_definition_with_offset is a type of projected_zone_definition. A projected_zone_definition_with_offset is used when the origin of the projected tolerance zone is offset from the reference surface.

EXPRESS specification:

*)
ENTITY projected_zone_definition_with_offset
  SUBTYPE OF (projected_zone_definition);
  offset : length_measure_with_unit;
END_ENTITY;
(*

Attribute definitions:

offset: specifies the value of the offset.

6.4.30 roundness_tolerance   EXPRESS-G

A roundness_tolerance is a type of geometric_tolerance. Unless otherwise specified, the rules governing roundness tolerance defined in ISO 1101 shall apply.

NOTE 1   Alternatively roundness tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

The toleranced_shape_aspect shall be of invariance class surface revolute feature but not a helical shape.

NOTE 2   In the case of a sphere, any axis through the centre point of the sphere may be considered.

The actual surface shall lie in a tolerance zone limited by two co-planar and concentric circles with a difference in radii of the tolerance value.

EXPRESS specification:

*)
ENTITY roundness_tolerance
  SUBTYPE OF (geometric_tolerance);
WHERE
  WR1: NOT ('SHAPE_TOLERANCE_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
(*

Formal propositions:

WR1: The roundness_tolerance shall not be of type geometric_tolerance_with_datum_reference.

6.4.31 runout_zone_definition   EXPRESS-G

A runout_zone_definition is a type of tolerance_zone_definition that is defined by the orientation of the measurement of the toleranced shape_aspect to the centre_of_symmetry of a datum_feature.

EXAMPLE    Figure 14 illustrates a runout_zone_definition.



Figure 14 —  Runout zone definition

Figure 14 —  Runout zone definition

EXPRESS specification:

*)
ENTITY runout_zone_definition
  SUBTYPE OF (tolerance_zone_definition);
  orientation : runout_zone_orientation;
END_ENTITY;
(*

Attribute definitions:

orientation: the orientation of a toleranced shape_aspect to the centre of symmetry of a datum_feature.

6.4.32 runout_zone_orientation   EXPRESS-G

A runout_zone_orientation is the specification of the orientation of the runout tolerance element to the centre of symmetry of a datum_feature.

EXAMPLE 1   Figure 13 illustrates an angle for a runout_zone_orientation. Rules specifying how the angle is measured shall be defined in an application protocol.

EXPRESS specification:

*)
ENTITY runout_zone_orientation;
  angle : plane_angle_measure_with_unit;
END_ENTITY;
(*

Attribute definitions:

angle: an angle value that orients the tolerance zone from the centre of symmetry of a datum feature to which the runout zone is applied, or a specific value that is the normal to the surface of the shape_aspect that is applied to the runout tolerance.

NOTE    If a value other than a numeric value is desired then angle may be a descriptive_measure.

EXAMPLE 2   An example of an angle defined by a descriptive value may be “normal”.

Informal propositions:

IP1: The angle value shall range from 0 to 90 degrees if the angle is a planar angle.

6.4.33 runout_zone_orientation_reference_direction   EXPRESS-G

A runout_zone_orientation_reference_direction is a type of runout_zone_orientation that specifies the reference direction for the orientation of the angle.

EXPRESS specification:

*)
ENTITY runout_zone_orientation_reference_direction
  SUBTYPE OF (runout_zone_orientation);
  orientation_defining_relationship : shape_aspect_relationship;
END_ENTITY;
(*

Attribute definitions:

orientation_defining_relationship: the shape_aspect_relationship which specifies a directed relationship from the relating_shape_aspect to the related_shape_aspect to define the reference direction in which the angle is to be oriented.

6.4.34 statistical_distribution_for_tolerance   EXPRESS-G

A statistical_distribution_for_tolerance is a type of representation that is defined by a set of measure_representation_items that provide the set of distribution parameters. Each distribution parameter is defined by a name and a measure_with_unit.

EXAMPLE 1   Normal Gaussian, Logarithmic or Rayleigh are names for statistical distributions.

EXAMPLE 2   Mean and standard deviation are characteristic parameters that define a Normal Gaussian distribution.

EXPRESS specification:

*)
ENTITY statistical_distribution_for_tolerance
  SUBTYPE OF (representation);
WHERE
  WR1: SIZEOF (QUERY (item <* SELF\representation.items | NOT ('QUALIFIED_MEASURE_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (item)))) = 0;
END_ENTITY;
(*

Formal propositions:

WR1: The representation_items in the set statistical_distribution_for_tolerance shall be of type measure_representation_item.

Informal propositions:

IP1: The name of each parameter that is related to the statistical_distribution_for_tolerance shall be specified in the name attribute of each respective representation_item in the items attribute of the representation

6.4.35 straightness_tolerance   EXPRESS-G

A straightness_tolerance is a type of geometric_tolerance that applies either to the intersection curves between the surface and the planes parallel to the reference plane, or to the extracted median curve. Unless otherwise specified, the rules governing straightness tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively straightness tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

The toleranced_shape_aspect is a surface or a straight line. Refer to the definition of straightness tolerance in ISO 1101 for a description of the different tolerance zones. In the case of intersection curves, the ideal features corresponding to the intersection curves shall be linear and there shall be another shape_aspect, which is related to the toleranced_shape_aspect by a shape_aspect_relationship. The name of the shape_aspect_relationship shall be 'affected plane association'.

EXPRESS specification:

*)
ENTITY straightness_tolerance
  SUBTYPE OF (geometric_tolerance);
WHERE
  WR1: NOT ('SHAPE_TOLERANCE_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
(*

Formal propositions:

WR1: The straightness_tolerance shall not be of type geometric_tolerance_with_datum_reference.

6.4.36 surface_profile_tolerance   EXPRESS-G

A surface_profile_tolerance is a type of geometric_tolerance that applies to a surface. Unless otherwise specified, the rules governing profile any surface tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively profile tolerance of a surface can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY surface_profile_tolerance
  SUBTYPE OF (geometric_tolerance);
END_ENTITY;
(*

6.4.37 symmetry_tolerance   EXPRESS-G

A symmetry_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified, the rules governing symmetry tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively symmetry tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY symmetry_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.38 tolerance_value   EXPRESS-G

A tolerance_value is the representation of plus-minus tolerances for a dimension. A tolerance_value specifies the numeric values added to the nominal dimension of a shape_aspect.

The lower_bound and upper_bound are applied to the value of the dimension to determine the acceptable range of measured values. A tolerance_value may be either assigned by the user or specified according to ISO 286-l and ISO 286-2.

EXAMPLE    Since the only constraint on the attribute values is that the upper bound be greater than the lower bound, the specification of a plus_minus_tolerance (e.g., 10.0+0.10+0.05) is permitted. In this case, the nominal dimension, 10.0, is not bounded by its associated tolerance zone.

EXPRESS specification:

*)
ENTITY tolerance_value;
  lower_bound : measure_with_unit;
  upper_bound : measure_with_unit;
DERIVE
  ubvc : REAL := upper_bound\measure_with_unit.value_component;
  lbvc : REAL := lower_bound\measure_with_unit.value_component;
WHERE
  WR1: ubvc > lbvc;
  WR2: upper_bound\measure_with_unit.unit_component = lower_bound\measure_with_unit.unit_component;
END_ENTITY;
(*

Attribute definitions:

lower_bound: the value of the tolerance that is added to the dimension value to establish the minimum deviation from the boundary toleranced from the nominal dimension.

upper_bound: the value of the tolerance that is added to the dimension value to establish the maximum deviation from the boundary toleranced from the nominal dimension.

ubvc: the numeric value of the upper_bound without unit component.

lbvc: the numeric value of the lower_bound without unit component.

Formal propositions:

WR1: The value of the upper_bound shall be greater than the value of the lower_bound.

WR2: The upper_bound and the lower_bound shall have the same unit.

6.4.39 tolerance_with_statistical_distribution   EXPRESS-G

A tolerance_with_statistical_distribution is the allocation of a tolerance in terms of a probability distribution. The statistical_distribution_for_tolerance may be associated with a tolerance value for a geometric_tolerance or a range of tolerances for a plus_minus_tolerance.

EXAMPLE    The diameter of a shaft is toleranced by a plus_minus_tolerance. The plus_minus_tolerance specifies the range in which the diameter may vary. The statistical_distribution_for_tolerance associated to this plus_minus_tolerance specifies that the actual diameter values shall conform to a statistical distribution within the tolerance range.

EXPRESS specification:

*)
ENTITY tolerance_with_statistical_distribution;
  associated_tolerance : shape_tolerance_select;
  tolerance_allocation : statistical_distribution_for_tolerance;
END_ENTITY;
(*

Attribute definitions:

associated_tolerance: the tolerance that is specified with a statistical distribution.

tolerance_allocation: the statistical distribution that shall apply to the tolerance

6.4.40 tolerance_zone   EXPRESS-G

A tolerance_zone is a type of shape_aspect. A tolerance_zone is the region within which the toleranced feature shall be defined. The characteristics of the region are specified by the manner in which the toleranced feature is dimensioned.

EXAMPLE    A geometric location tolerance applied to a hole defines a tolerance_zone_form that may be described as cylindrical.

EXPRESS specification:

*)
ENTITY tolerance_zone
  SUBTYPE OF (shape_aspect);
  defining_tolerance : SET[1:?] OF tolerance_zone_target;
  form : tolerance_zone_form;
END_ENTITY;
(*

Attribute definitions:

defining_tolerance: all geometric tolerances which define a tolerance_zone for a shape_aspect.

form: the representation of the applied shape that limits the specified tolerance for the tolerance_zone.

6.4.41 tolerance_zone_definition   EXPRESS-G

A tolerance_zone_definition is a specification of the defining boundaries of a tolerance zone. A tolerance_zone_definition may be either a projected_zone_definition or a non_uniform_zone_definition, or a runout_zone_definition.

NOTE    A pair of boundaries specified as a single tolerance_zone_definition may form either a partial or complete tolerance zone. When the tolerance zone is not fully bounded, it is appropriate to assume that the tolerance zone extends to infinity at the unbounded areas

EXAMPLE    A flatness tolerance zone of a planar surface is bounded by two parallel, infinite planes separated by a distance of the tolerance magnitude.

EXPRESS specification:

*)
ENTITY tolerance_zone_definition
  SUPERTYPE OF (ONEOF (projected_zone_definition,
                       non_uniform_zone_definition,
                       runout_zone_definition));
  zone : tolerance_zone;
  boundaries : SET[0:?] OF shape_aspect;
END_ENTITY;
(*

Attribute definitions:

zone: the tolerance_zone being defined.

boundaries: a set of shape_aspects that define boundaries of the tolerance_zone.

EXAMPLE    A geometric location tolerance applied to a hole is defined to be a cylindrical zone in which the axis of the hole may vary. The cylindrical zone is symmetric about its axis. The two defining boundaries of this tolerance zone are the cylindrical surface and its axis. For a tolerance_zone defined by two parallel planes (or lines), each plane (or line) defines a boundary of the tolerance_zone_definition.

6.4.42 tolerance_zone_form   EXPRESS-G

A tolerance_zone_form is a description of the shape of the tolerance_zone.

EXAMPLE    “within a circle”, “between two concentric circles”, “between two equidistant curves”, “within a cylinder”, “between two coaxial cylinders”, “between two equidistant surfaces”, “non-uniform”, “cylindrical or circular”, and “spherical” are examples of descriptions of tolerance zone shapes.

EXPRESS specification:

*)
ENTITY tolerance_zone_form;
  name : label;
END_ENTITY;
(*

Attribute definitions:

name: the description of a tolerance zone shape

6.4.43 tolerance_zone_with_datum   EXPRESS-G

A tolerance_zone_with_datum is a type of tolerance_zone that includes direction or orientation classification with respect to referenced features.

NOTE    Typically only a primary datum is used.

EXPRESS specification:

*)
ENTITY tolerance_zone_with_datum
  SUPERTYPE OF (ONEOF (directed_tolerance_zone,
                       oriented_tolerance_zone))
  SUBTYPE OF (tolerance_zone);
  datum_reference : datum_system;
END_ENTITY;
(*

Attribute definitions:

datum_reference: the datum_system which serves as the geometric reference for the tolerance_zone_with_datum orientation.

6.4.44 total_runout_tolerance   EXPRESS-G

A total_runout_tolerance is a type of geometric_tolerance_with_datum_reference. Unless otherwise specified the rules governing total run-out tolerance defined in ISO 1101 shall apply.

NOTE    Alternatively total run-out tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

The set of referenced datums shall contain one revolute surface feature. The tolerance zone is limited by:

EXPRESS specification:

*)
ENTITY total_runout_tolerance
  SUBTYPE OF (geometric_tolerance_with_datum_reference);
END_ENTITY;
(*

6.4.45 unequally_disposed_geometric_tolerance   EXPRESS-G

An unequally_disposed_geometric_tolerance is a type of geometric_tolerance whose tolerance zone is offset from the default value. Unless otherwise specified an unequally_disposed_geometric_tolerance shall be used in accordance with unequally disposed tolerance zone as defined in ISO 1101.

NOTE    Alternatively unequally_disposed_geometric_tolerance can be used according to the specifications given in ASME Y14.5-2009 [11].

EXPRESS specification:

*)
ENTITY unequally_disposed_geometric_tolerance
  SUBTYPE OF (geometric_tolerance);
  displacement : length_measure_with_unit;
WHERE
  WR1: 'NUMBER' IN TYPEOF(displacement\measure_with_unit.value_component);
END_ENTITY;
(*

Attribute definitions:

displacement: specifies the offset of the tolerance zone from the true profile.

Formal propositions:

WR1: The displacement shall be a number.

6.5 shape_tolerance_schema function definitions

6.5.1 acyclic_geometric_tolerance_relationship

The acyclic_geometric_tolerance_relationship function determines whether the graph of geometric_tolerance_relationship contains a cycle.

EXPRESS specification:

*)
FUNCTION acyclic_geometric_tolerance_relationship (relation : geometric_tolerance_relationship; relatives : SET[1:?] OF geometric_tolerance; specific_relation : STRING) : BOOLEAN;
LOCAL
      x : SET OF geometric_tolerance_relationship;
    END_LOCAL;

    IF relation.relating_geometric_tolerance IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(geotol <* bag_to_set(
              USEDIN(relation.relating_geometric_tolerance,
              'SHAPE_TOLERANCE_SCHEMA.' + 'GEOMETRIC_TOLERANCE_RELATIONSHIP.' + 'RELATED_GEOMETRIC_TOLERANCE')) | specific_relation IN TYPEOF(geotol));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_geometric_tolerance_relationship(x[i], relatives + relation.relating_geometric_tolerance, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified geometric_tolerance_relationship

relatives: the specified set of geometric_tolerance

specific_relation: the specified STRING.

6.5.2 sts_get_product_definition_shape

The sts_get_product_definition_shape function returns the product_definition_shape associated with the geometric_tolerance_target as an input.

EXPRESS specification:

*)
FUNCTION sts_get_product_definition_shape (input : geometric_tolerance_target) : product_definition_shape;
CASE TRUE OF ('SHAPE_DIMENSION_SCHEMA.DIMENSIONAL_LOCATION' IN TYPEOF(input)) :
                 RETURN(input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape);
               ('SHAPE_DIMENSION_SCHEMA.DIMENSIONAL_SIZE' IN TYPEOF(input)) :
                 RETURN(input\dimensional_size.applies_to\shape_aspect.of_shape);
               ('PRODUCT_PROPERTY_DEFINITION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input)) :
                 RETURN(input);
               ('PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT' IN TYPEOF(input)) :
                 RETURN(input\shape_aspect.of_shape);
  OTHERWISE : RETURN(?);
  END_CASE;
END_FUNCTION;
(*

Argument definitions:

input: the specified geometric_tolerance_target.

6.6 shape_tolerance_schema rule definitions

6.6.1 subtype_exclusiveness_geometric_tolerance

The subtype_exclusiveness_geometric_tolerance rule specifies that subtypes of geometric_tolerance for specific geometrical characteristics are mutually exclusive and that exactly one characteristic is used.

EXPRESS specification:

*)
RULE subtype_exclusiveness_geometric_tolerance FOR
(geometric_tolerance);
WHERE
  WR1: SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['SHAPE_TOLERANCE_SCHEMA.ANGULARITY_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.CIRCULAR_RUNOUT_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.COAXIALITY_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.CONCENTRICITY_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.CYLINDRICITY_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.FLATNESS_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.LINE_PROFILE_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.PARALLELISM_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.PERPENDICULARITY_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.POSITION_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.ROUNDNESS_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.STRAIGHTNESS_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.SURFACE_PROFILE_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.SYMMETRY_TOLERANCE', 'SHAPE_TOLERANCE_SCHEMA.TOTAL_RUNOUT_TOLERANCE'] , 2 ) ))) = 0;
END_RULE;
(*

Argument definitions:

geometric_tolerance : the set of all instances of geometric_tolerance.

Formal propositions:

WR1: Each instance of the subtypes of shall be only one of:



*)
END_SCHEMA;  -- shape_tolerance_schema
(*


© ISO 2021 — All rights reserved