(* $Id: aic_mechanical_design_shaded_presentation.exp,v 1.10 2014/03/04 00:30:28 thomasrthurman Exp $ ISO 10303 TC184/SC4/WG12 N8487 EXPRESS Source: ISO 10303-518 ed3 Mechanical design shaded presentation - Aic mechanical design shaded presentation The following permission notice and disclaimer shall be included in all copies of this EXPRESS schema ("the Schema"), and derivations of the Schema: Copyright ISO 2014 All rights reserved Permission is hereby granted, free of charge in perpetuity, to any person obtaining a copy of the Schema, to use, copy, modify, merge and distribute free of charge, copies of the Schema for the purposes of developing, implementing, installing and using software based on the Schema, and to permit persons to whom the Schema is furnished to do so, subject to the following conditions: THE SCHEMA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SCHEMA OR THE USE OR OTHER DEALINGS IN THE SCHEMA. In addition, any modified copy of the Schema shall include the following notice: THIS SCHEMA HAS BEEN MODIFIED FROM THE SCHEMA DEFINED IN ISO 10303-518 ed3 Mechanical design shaded presentation - Aic mechanical design shaded presentation AND SHOULD NOT BE INTERPRETED AS COMPLYING WITH THAT STANDARD *) SCHEMA aic_mechanical_design_shaded_presentation '{iso standard 10303 part(518) version(2) object(1) aic_mechanical_design_shaded_presentation(1)}'; USE FROM geometry_schema -- ISO 10303-42 (axis2_placement, axis2_placement_2d, axis2_placement_3d); USE FROM measure_schema -- ISO 10303-41 (positive_ratio_measure); USE FROM presentation_appearance_schema -- ISO 10303-46 (curve_style, curve_style_font, curve_style_font_pattern, curve_style_rendering, 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_rendering_properties, surface_side_style, surface_style_boundary, surface_style_control_grid, surface_style_fill_area, surface_style_parameter_line, surface_style_reflectance_ambient, surface_style_reflectance_ambient_diffuse, surface_style_reflectance_ambient_diffuse_specular, surface_style_rendering, surface_style_rendering_with_properties, surface_style_segmentation_curve, surface_style_silhouette, surface_style_transparent, surface_style_usage, u_direction_count, v_direction_count); REFERENCE FROM presentation_organization_schema -- ISO 10303-46 (aspect_ratio); USE FROM presentation_organization_schema -- ISO 10303-46 (area_in_set, background_colour, camera_image_3d_with_scale, camera_model_d3, camera_model_d3_with_hlhsr, camera_model_with_light_sources, camera_usage, light_source_ambient, light_source_directional, light_source_positional, light_source_spot, presentation_area, presentation_set, 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/IS 10303-41 (shape_representation); USE FROM representation_schema -- ISO 10303-43 (mapped_item, representation); TYPE mechanical_design_shaded_presentation_area_items = SELECT( axis2_placement, mapped_item); END_TYPE; TYPE mechanical_design_shaded_presentation_representation_items = SELECT( axis2_placement, camera_model_d3, mapped_item, styled_item); END_TYPE; ENTITY mechanical_design_shaded_presentation_area SUBTYPE OF (presentation_area); SELF\representation.items : SET[1:?] OF mechanical_design_shaded_presentation_area_items; WHERE WR1 : (* only presentation_views or axis2_placements in mechanical_design_shaded_presentation_area *) SIZEOF (QUERY (it1 <* SELF.items | NOT (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.AXIS2_PLACEMENT' IN TYPEOF (it1)) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.MAPPED_ITEM' IN TYPEOF (it1)) AND ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.PRESENTATION_VIEW' IN TYPEOF (it1\mapped_item.mapping_source.mapped_representation)))))) = 0; WR2 : (* only mechanical_design_shaded_presentation_representation via camera_image_3d_with_scale or axis2_placements in presentation_views *) SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.MAPPED_ITEM' IN TYPEOF (it1)) | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.PRESENTATION_VIEW' IN TYPEOF (mi1\mapped_item.mapping_source.mapped_representation)) | (* search in all presentation_views for axis2_placements and mapped_items and for the subtype of mapped_item, camera_image_3d_with_scale; the latter shall reference a mechanical_design_geometric_presentation_representation; the supertype mapped_item shall reference presentation_view. *) NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source. mapped_representation\representation.items | NOT (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.PRESENTATION_VIEW' IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation))) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ( ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) )) ))) = 0))) = 0; WR3: (* Presentation_size shall be a positive rectangle for area and set. Check for this presentation_area subtype first. *) (SIZEOF (QUERY(ps <* USEDIN (SELF, 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'PRESENTATION_SIZE.UNIT') | NOT ((ps\presentation_size.size.size_in_x > 0) AND (ps\presentation_size.size.size_in_y > 0)) )) = 0) AND (* check secondly for presentation_set, via area_in_set *) (SIZEOF (QUERY(pset <* QUERY(ais <* USEDIN (SELF, 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'AREA_IN_SET.AREA') | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | (* after having collected all presentation_set, check their sizes *) SIZEOF (QUERY(ps <* USEDIN(pset, 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'PRESENTATION_SIZE.UNIT') | NOT ((ps\presentation_size.size.size_in_x > 0) AND (ps\presentation_size.size.size_in_y > 0)) )) = 0)) = 0); WR4: (* Drawing space shall be defined in 2D. Check for this presentation_area subtype first. *) (SIZEOF(QUERY( psize <* USEDIN (SELF, 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'PRESENTATION_SIZE.UNIT') | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF (psize.size.placement))) = 1) AND (* check secondly for presentation_set, via area_in_set *) (SIZEOF (QUERY(pset <* QUERY(ais <* USEDIN (SELF, 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'AREA_IN_SET.AREA') | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | (* after having collected all presentation_set, check their dimension *) SIZEOF (QUERY(psize <* USEDIN(pset, 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'PRESENTATION_SIZE.UNIT') | NOT ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF (psize.size.placement)) )) = 0)) = 0); WR5 : (* valid types of camera_models get for all presentation_areas their presentation_views *) SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.MAPPED_ITEM' IN TYPEOF (it1)) | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.PRESENTATION_VIEW' IN TYPEOF (mi1\mapped_item.mapping_source.mapped_representation)) | (* search in all presentation_views for mapped_items and for the subtype of mapped_item, camera_image_3d_with_scale; the latter shall reference a camera_usage that shall have as its mapping_origin either camera_model_d3, camera_model_d3_with_hlhsr, or camera_model_with_light_sources. *) NOT (SIZEOF(QUERY(ci <* pv\mapped_item.mapping_source. mapped_representation\representation.items | ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci)) AND (SIZEOF(['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CAMERA_MODEL_D3', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CAMERA_MODEL_D3_WITH_HLHSR', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF (ci\mapped_item.mapping_source.mapping_origin)) = 1))) = 0))) = 0; END_ENTITY; (* mechanical_design_shaded_presentation_area *) ENTITY mechanical_design_shaded_presentation_representation SUBTYPE OF (representation); SELF\representation.items : SET[1:?] OF mechanical_design_shaded_presentation_representation_items; WHERE WR1: (* for all mapped_items check that only shape_representations and mechanical_design_shaded_presentation_representations are referenced *) SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.MAPPED_ITEM' IN TYPEOF(it))) | NOT (SIZEOF( ['PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.' + 'SHAPE_REPRESENTATION', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0; WR2: (* for all styled_item.item check that in case they are mapped_items that they are shape_representations *) SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.STYLED_ITEM' IN TYPEOF(it))) | ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.MAPPED_ITEM' IN TYPEOF(si\styled_item.item))) | NOT ( ('PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item. item\mapped_item.mapping_source.mapped_representation))) )) = 0; WR3: (* for all styled_items get their styles via presentation_style_assignment.styles and check for valid style types *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_PRESENTATION.POINT_STYLE', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.SURFACE_STYLE_USAGE'] * TYPEOF (pss)) = 1))) = 0))) = 0))) = 0; WR4: (* for all styled_items get those assigned styles that are presentation_style_by_contexts and ensure that these reference only representation_items and representations as valid contexts *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psbc <* QUERY (psa <* si\styled_item.styles | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF (psa)) | NOT (SIZEOF ( ['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.REPRESENTATION_ITEM', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.REPRESENTATION'] * TYPEOF (psbc\presentation_style_by_context.style_context)) = 1))) = 0))) = 0; WR5: (* for all styled_items get all assigned point_styles and ensure that marker_select, marker_size and marker_colour are valid *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_PRESENTATION.POINT_STYLE' IN TYPEOF (pss)) | NOT ( ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.MARKER_TYPE' IN TYPEOF (ps\point_style.marker)) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (ps\point_style.marker_size)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0; WR6: (* for all styled_items get all assigned curve_styles and ensure that curve_width, curve_font and curve_colour are valid *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_PRESENTATION.CURVE_STYLE' IN TYPEOF (pss)) | NOT ( (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (cs\curve_style.curve_colour)) = 1) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs\curve_style.curve_width)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; WR7: (* for all styled_items get all assigned surface_style_usages and ensure that its style is a surface_side_style *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.SURFACE_SIDE_STYLE' IN TYPEOF (ssu\surface_style_usage.style)) )) = 0))) = 0 ))) = 0; WR8: (* for all styled_items get all assigned surface_style_usages and the surface_side_styles that they reference, and ensure that the styles referenced by those surface_side_styles are among the valid subset *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | NOT (SIZEOF ( ['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_PARAMETER_LINE', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_CONTROL_GRID', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_SILHOUETTE', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_SEGMENTATION_CURVE', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_BOUNDARY', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_FILL_AREA', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_RENDERING'] * TYPEOF (sses)) = 1))) = 0))) = 0))) = 0))) = 0; WR9: (* for all surface_style_fill_areas that are referenced by any surface_side_styles ensure that they are valid with respect to their colour representation *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (ssfa <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.SURFACE_STYLE_FILL_AREA' IN TYPEOF (sses)) | NOT (SIZEOF (QUERY (fss <* ssfa\surface_style_fill_area.fill_area.fill_styles | NOT (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fss)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0))) = 0))) = 0))) = 0; WR10: (* for all surface_style_parameter_lines that are referenced by any surface_side_styles ensure that they are valid with respect to the applied curve_style, which may include rendering *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_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_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF (sses)) | NOT (( ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE' IN TYPEOF (sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_colour)) = 1) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_width)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_font)) = 1)) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE_RENDERING' IN TYPEOF (sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sspl\surface_style_parameter_line.style_of_parameter_lines\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR11: (* for all surface_style_control_grids that are referenced by any surface_side_styles ensure that they are valid with respect to the applied curve_style, which may include rendering *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_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_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF (sses)) | NOT (( ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE' IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_colour)) = 1) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_width)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_font)) = 1)) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE_RENDERING' IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sscg\surface_style_control_grid.style_of_control_grid\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR12: (* for all surface_style_silhouettes that are referenced by any surface_side_styles ensure that they are valid with respect to the applied curve_style, which may include rendering *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_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_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF (sses)) | NOT (( ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE' IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_colour)) = 1) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_width)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_font)) = 1)) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE_RENDERING' IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssh\surface_style_silhouette.style_of_silhouette\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR13: (* for all surface_style_segmentation_curves that are referenced by any surface_side_styles ensure that they are valid with respect to the applied curve_style, which may include rendering *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_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_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF (sses)) | NOT (( ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE' IN TYPEOF (sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_colour)) = 1) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_width)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_font)) = 1)) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE_RENDERING' IN TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssc\surface_style_segmentation_curve.style_of_segmentation_curve\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR14: (* for all surface_style_boundaries that are referenced by any surface_side_styles ensure that they are valid with respect to the applied curve_style, which may include rendering *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_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_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)) | NOT (( ('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE' IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_colour)) = 1) AND ('MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_width)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'CURVE_STYLE_FONT', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_font)) = 1)) OR (('AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.CURVE_STYLE_RENDERING' IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ssbd\surface_style_boundary.style_of_boundary\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR15: (* for all surface_style_renderings that are referenced by any surface_side_styles ensure that the colour representation is valid *) SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AIC_MECHANICAL_DESIGN_SHADED_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_SHADED_PRESENTATION.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (ssre <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'SURFACE_STYLE_RENDERING' IN TYPEOF (sses)) | NOT (SIZEOF (['AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.COLOUR_RGB', 'AIC_MECHANICAL_DESIGN_SHADED_PRESENTATION.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ssre\surface_style_rendering.surface_colour)) = 1))) = 0))) = 0))) = 0))) = 0; END_ENTITY; END_SCHEMA; -- aic_mechanical_design_shaded_presentation