Application interpreted construct: Mechanical design geometric presentation ISO 10303-517: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 EXPRESS short listing
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Mechanical design geometric presentation type definition
   4.4 Mechanical design geometric presentation entity definitions

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

4 EXPRESS short listing

4.1 General

This application interpreted construct provides a consistent set of entities for the representation of pictures.

EXAMPLE 1   Pictures of mechanical products that are in the design stage are examples of pictures supported by this AIC.

All pictures shall be presented in the same window on a display. A picture may include one or several views of a product shape. Only the association between product shape and its projection algorithms is represented, not the projections themselves.

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 aic_mechanical_design_geometric_presentation schema that uses elements from the integrated resources and contains the types, entity specializations, and functions that are specific to this document.

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 aic_mechanical_design_geometric_presentation;

USE FROM geometry_schema    --  ISO 10303-42
  (axis2_placement,
   axis2_placement_2d,
   axis2_placement_3d);

USE FROM presentation_appearance_schema    --  ISO 10303-46
  (curve_style,
   curve_style_font,
   curve_style_font_pattern,
   draughting_pre_defined_curve_font,
   fill_area_style_colour,
   invisibility,
   marker_type,
   over_riding_styled_item,
   point_style,
   presentation_style_by_context,
   styled_item,
   surface_side_style,
   surface_style_boundary,
   surface_style_control_grid,
   surface_style_fill_area,
   surface_style_parameter_line,
   surface_style_segmentation_curve,
   surface_style_silhouette,
   surface_style_usage,
   u_direction_count,
   v_direction_count);

USE FROM presentation_organization_schema    --  ISO 10303-46
  (background_colour,
   camera_model_d3,
   camera_image_3d_with_scale,
   camera_usage,
   presentation_area,
   presentation_representation,
   presentation_size,
   presentation_view);

USE FROM presentation_resource_schema    --  ISO 10303-46
  (colour_rgb,
   draughting_pre_defined_colour,
   planar_box,
   planar_extent);

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

USE FROM representation_schema    --  ISO 10303-43
  (mapped_item,
   representation);

REFERENCE FROM presentation_organization_schema    --  ISO 10303-46
  (aspect_ratio);
(*

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

geometry_schema ISO 10303-42
presentation_appearance_schema ISO 10303-46
presentation_organization_schema ISO 10303-46
presentation_resource_schema ISO 10303-46
product_property_representation_schema ISO 10303-41
representation_schema ISO 10303-43

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

NOTE 3   There may be subtypes and items of select lists that appear in the integrated resources that are not imported into the AIC. Constructs are eliminated from the subtype tree or select list through the use of the implicit interface rules of ISO 10303-11. References to eliminated constructs are outside the scope of the AIC. In some cases, all items of the select list are eliminated. Because AICs are intended to be implemented in the context of an application protocol, the items of the select list will be defined by the scope of the application protocol

4.2 Fundamental concepts and assumptions

The structure for the management of pictures is implemented using entities mechanical_design_geometric_presentation_area, presentation_view, and mechanical_design_geometric_presentation_representation. The relationships between these entities are represented using the mapped_item and representation_map entities. A mechanical_design_geometric_presentation_area is a subtype of presentation_area. This subtype has been created for the purpose of this part of ISO 10303. All the contents of a window shall be included into one mechanical_design_geometric_presentation_area. A view is represented by a presentation_view. The view contains entity camera_image_3d_with_scale which has been created for the purpose of this part of ISO 10303. This entity references camera_image which has the information that is necessary to compute the projection of a shape; this information is included in the camera model. Only entity camera_model_d3 shall be used as camera model; none of its subtypes is valid. Light sources and hidden line removal are not part of the camera model. Camera_image_3d_with_scale references not only the camera model, but links it with mechanical_design_geometric_presentation_representation which contains product shape descriptions. These shapes may or may not be styled.

The appearance of product shape may be specified using styles for points, curves, and surfaces. Styles may also be assigned to topological elements of product shape. A style assignment is made by instantiating a styled_item which refers to a representation_item together with its presentation_style_assignment. For the purpose of this part of ISO 10303 a subtype of representation has been created, mechanical_design_geometric_presentation_representation, to collect all styled_items for a mechanical_design_geometric_presentation_area.

The presentation_style_assignment of a styled_item affects the appearance of the referenced representation_item as well as the appearance of all representation_items referenced directly or indirectly by that item. Only those representation_items are affected that are not already styled. This means styling a styled representation_item has no effect. Styling a partially styled representation_item affects only the appearance of the unstyled parts. Styling an unstyled representation_item affects the appearance of the whole item. Only styled representation_items may be presented. Whether they are actually presented depends also on other facts, like invisibility. This part of ISO 10303 does not make any statement about the effect if style conflicts occur.

EXAMPLE 2   A style conflict occurs, for example, when a representation_item is used by several styled_items.

A presentation_style_assignment is used to assign styles to a representation_item independently from any presentation context. A subtype of presentation_style_assignment, the presentation_style_by_context, allows the assignment of style for a specific presentation context. A presentation context can be any representation or representation_item.

Point_styles allow the specification of the marker symbol, marker size, and colour to be used for presenting points.

Curve_styles allow the specification of curve fonts, curve width, and colour. The appearance of curve ends and corners, and of patterns for filling visible curve segments is not distinguished. A curve font specifies whether a curve shall be drawn using solid, dashed, or dotted lines. The specification of arbitrary patterns for curve fonts and the usage of externally defined curve fonts are not incuded. Curve fonts may be pre–defined. The entities used for the definition of curve fonts are draughting_pre_defined_curve_font and curve_style_font. The curve width shall be specified as a measure value.

Surface styles provide the resources to specify the visual appearance of surfaces. Separate surface styles may be applied to each side of a surface using entities surface_style_usage and surface_side_style. A surface side style may be any combination of fill area style, boundary style, silhouette style, segmentation curve style, control grid style, or parameter line style. The rendering of curves and surfaces is not included.

A fill area style specifies a style for presenting visible surfaces by mapping a coloured fill area upon them.

A boundary style specifies a curve style for presenting the boundary curves of a surface. If no boundary style is specified, the boundary curves shall not be presented.

A silhouette style specifies a curve style for presenting the silhouette curves of a surface. If no silhouette style is specified, silhouette curves shall not be presented.

A segmentation curve style specifies a curve style for presenting the segmentation curves of a surface. This style affects only surfaces which are divided into segments such as B–spline surfaces. If no segmentation curve style is specified, segmentation curves shall not be presented.

A control grid style specifies a curve style for presenting the mesh of control points which are used for the definition of a surface. This style affects only surfaces which are defined over a mesh of control points, such as B–spline surfaces. If no control grid style is specified, the control grid shall not be presented.

A parameter line style specifies a curve style for presenting iso–parameter lines of a surface. The number of parameter lines in each parameter direction has to be specified for this style. If no parameter line style is specified, the parameter lines shall not be presented.

The entities defining these surface styles are surface_style_fill_area, surface_style_boundary, surface_style_silhouette, surface_style_segmentation_curve, surface_style_control_grid, and surface_style_parameter_line.

Colours may be specified based on the RGB colour model using entity colour_rgb or by draughting_pre_defined_colour.

This part of ISO 10303 does not include constructs for the representation of annotation.

The following entities are intended to be independently instantiated in the application protocol schemas that use this AIC:

4.3 aic_mechanical_design_geometric_presentation type definitions

4.3.1 mechanical_design_geometric_presentation_area_items   EXPRESS-G

The mechanical_design_geometric_presentation_area_items 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 mechanical_design_geometric_presentation_area_items = SELECT
   (axis2_placement,
    mapped_item);
END_TYPE;
(*

4.3.2 mechanical_design_geometric_presentation_representation_items   EXPRESS-G

The mechanical_design_geometric_presentation_representation_items 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 mechanical_design_geometric_presentation_representation_items = SELECT
   (axis2_placement,
    camera_model_d3,
    mapped_item,
    styled_item);
END_TYPE;
(*

4.4 aic_mechanical_design_geometric_presentation entity definitions

4.4.1 mechanical_design_geometric_presentation_area   EXPRESS-G

A mechanical_design_geometric_presentation_area is a type of presentation_area. A mechanical_design_geometric_presentation_area contains information that is needed to determine the projection from some mechanical design model to a corresponding picture on a screen. The design model may be represented by any type of shape, such as a wireframe, surface, or solid. A mechanical_design_geometric_presentation_area is a presentation_area that is restricted to a certain presentation hierarchy. A mechanical_design_geometric_presentation_area shall be a single–window presentation of a product; no other presentation_areas shall be included in a mechanical_design_geometric_presentation_area. The model that is presented shall be a mechanical_design_geometric_presentation_representation. The camera model used shall neither include light sources nor hidden line removal nor hidden surface removal, but shall be a camera_model_d3.

EXPRESS specification:

*)
ENTITY mechanical_design_geometric_presentation_area
  SUBTYPE OF (presentation_area);
  SELF\representation.items : SET[1:?] OF mechanical_design_geometric_presentation_area_items;
WHERE
  WR1: SIZEOF(QUERY(it1 <* SELF.items | NOT ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.MAPPED_ITEM' IN TYPEOF(it1)) OR ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.PRESENTATION_VIEW' IN TYPEOF(it1\mapped_item.mapping_source.mapped_representation)))) = 0;
  WR2: SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.MAPPED_ITEM' IN TYPEOF(it1)) | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.PRESENTATION_VIEW' IN TYPEOF(mi1\mapped_item.mapping_source.mapped_representation)) | NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source.mapped_representation\representation.items | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.PRESENTATION_VIEW' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation))) OR (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation)))))) = 0))) = 0;
  WR3: (SIZEOF(QUERY(ps <* USEDIN(SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_SIZE.UNIT') | ((ps\presentation_size.size.size_in_x <= 0) OR (ps\presentation_size.size.size_in_y <= 0)))) = 0) AND (SIZEOF(QUERY(ais <* USEDIN(SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN(ais, 'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_SIZE.UNIT') | ((ps\presentation_size.size.size_in_x <= 0) OR (ps\presentation_size.size.size_in_y <= 0)))) > 0))) = 0);
  WR4: (SIZEOF(QUERY(ps <* USEDIN(SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_SIZE.UNIT') | ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement)))) = 1) AND (SIZEOF(QUERY(ps <* USEDIN(SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_SIZE.UNIT') | ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement)))) = 0) OR ((SIZEOF(QUERY(ais <* USEDIN(SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN(ais, 'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_SIZE.UNIT') | ('GEOMETRY_SCHEMA.AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement)))) = 1))) = 1) AND (SIZEOF(QUERY(ais <* USEDIN(SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN(ais, 'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_SIZE.UNIT') | ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement)))) = 0))) = 1));
END_ENTITY;
(*

Attribute definitions:

items: the set of mechanical_design_geometric_presentation_area_items the mechanical_design_geometric_presentation_area is a collection of.

Formal propositions:

WR1: The items of a mechanical_design_geometric_presentation_area shall only be axis2_placements or mapped_items. In the latter case the mapped_representation of the representation_map that is the mapping_source of such a mapped_item shall be a presentation_view.

WR2: The items of a presentation_view shall only be axis2_placements or mapped_items. In the latter case a mapped_item may be of type camera_image_3d_with_scale with the mapped_representation of the representation_map that is the mapping_source of such a mapped_item being a mechanical_design_geometric_presentation_representation. If the mapped_item is not a camera_image_3d_with_scale, the mapped_representation of the representation_map that is the mapping_source of this mapped_item shall be a different presentation_view.

NOTE    If a user of this part of ISO 10303 includes in addition to camera_image_3d_with_scale other subtypes of mapped_item into a schema, additional rules may be required to exclude these subtypes to be instantiated in a presentation_view. This part does not hinder the instantiation of subtypes of mapped_item that are not specified in this part.

WR3: The rectangular size of the mechanical_design_geometric_presentation_area shall be specified by positive values.

WR4: The drawing space of a mechanical_design_geometric_presentation_area shall be specified in a 2D co-ordinate system.

4.4.2 mechanical_design_geometric_presentation_representation   EXPRESS-G

A mechanical_design_geometric_presentation_representation is a type of representation. A mechanical_design_geometric_presentation_representation specifies the shape and optionally related presentation styles that shall be viewed in a mechanical_design_geometric_presentation_area. All items of a mechanical_design_geometric_presentation_representation shall be either representation_items that describe shape or shape_representations. Such items may or may not be styled. An item may be a mapped_item. The use of styles and style attributes for points, curves, and surfaces is restricted.

EXPRESS specification:

*)
ENTITY mechanical_design_geometric_presentation_representation
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF mechanical_design_geometric_presentation_representation_items;
WHERE
  WR1: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.MAPPED_ITEM' IN TYPEOF(it))) | NOT (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SHAPE_REPRESENTATION', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0;
  WR2: SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it))) | ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.MAPPED_ITEM' IN TYPEOF(si\styled_item.item))) | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\mapped_item.mapping_source.mapped_representation))))) = 0;
  WR3: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POINT_STYLE', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_USAGE'] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0;
  WR4: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\styled_item.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.REPRESENTATION_ITEM', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.REPRESENTATION'] * TYPEOF(psbc\presentation_style_by_context.style_context)) = 1))) = 0))) = 0;
  WR5: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POINT_STYLE' IN TYPEOF(pss)) | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\point_style.marker_size)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0;
  WR6: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE' IN TYPEOF(pss)) | NOT ((SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(cs\curve_style.curve_colour)) = 1) AND ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\curve_style.curve_width)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0;
  WR7: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_SIDE_STYLE' IN TYPEOF(ssu\surface_style_usage.style)))) = 0))) = 0))) = 0;
  WR8: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE' IN TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour)) = 1) AND ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0;
  WR9: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE' IN TYPEOF(sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_colour)) = 1) AND ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_width)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0;
  WR10: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_colour)) = 1) AND ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_width)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0;
  WR11: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE' IN TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour)) = 1) AND ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0;
  WR12: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) | NOT (('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour)) = 1) AND ('AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_width)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0;
END_ENTITY;
(*

Attribute definitions:

items: the set of mechanical_design_geometric_presentation_representation_items the mechanical_design_geometric_presentation_representation is a collection of.

Formal propositions:

WR1: The mapped_representation of the representation_map that is the mapping_source of a mapped_item in a mechanical_design_geometric_presentation_representation shall be a shape_representation or another mechanical_design_geometric_presentation_representation.

WR2: The item of a styled_item may be a mapped_item only, if the mapped_item has a shape_representation as its mapped_representation.

WR3: Each item in the set of styles of a presentation_style_assignment shall be either a point_style, curve_style, or surface_style_usage.

WR4: The style_context attribute of a presentation_style_by_context shall be either a representation or a representation_item.

WR5: For each point_style in the set of styles of a presentation_style_assignment the marker_colour attribute shall be either a colour_rgb or a draughting_pre_defined_colour; the marker_size attribute shall be a positive_length_measure.

WR6: For each curve_style in the set of styles of a presentation_style_assignment the curve_colour attribute shall be either a colour_rgb or a draughting_pre_defined_colour; the curve_width attribute shall be a positive_length_measure; the curve_font attribute shall be either a curve_style_font or a draughting_pre_defined_curve_font.

WR7: The style attribute of each surface_style_usage in the set of styles of a presentation_style_assignment shall be a surface_side_style.

WR8: The style_of_parameter_lines attribute of a surface_style_parameter_line shall be a curve_style, and for this curve_style the curve_colour attribute shall be either a colour_rgb or a draughting_pre_defined_colour; the curve_width attribute shall be a positive_length_measure; the curve_font attribute shall be either a curve_style_font or a draughting_pre_defined_curve_font.

WR9: The style_of_control_grid attribute of a surface_style_control_grid shall be a curve_style, and for this curve_style the curve_colour attribute shall be either a colour_rgb or a draughting_pre_defined_colour; the curve_width attribute shall be a positive_length_measure; the curve_font attribute shall be either a curve_style_font or a draughting_pre_defined_curve_font.

WR10: The style_of_silhouette attribute of a surface_style_silhouette shall be a curve_style, and for this curve_style the curve_colour attribute shall be either a colour_rgb or a draughting_pre_defined_colour; the curve_width attribute shall be a positive_length_measure; the curve_font attribute shall be either a curve_style_font or a draughting_pre_defined_curve_font.

WR11: The style_of_segmentation_curve attribute of a surface_style_segmentation_curve shall be curve_style, and for this curve_style the curve_colour attribute shall be either a colour_rgb or a draughting_pre_defined_colour; the curve_width attribute shall be a positive_length_measure; the curve_font attribute shall be either a curve_style_font or a draughting_pre_defined_curve_font.

WR12: The style_of_boundary attribute of a surface_style_boundary shall be a curve_style, and for this curve_style the curve_colour attribute shall be either a colour_rgb or a draughting_pre_defined_colour; the curve_width attribute shall be a positive_length_measure; the curve_font attribute shall be either a curve_style_font or a draughting_pre_defined_curve_font.



*)
END_SCHEMA;  -- aic_mechanical_design_geometric_presentation
(*


© ISO 2021 — All rights reserved