SCHEMA associative_draughting; TYPE ahead_or_behind = ENUMERATION OF (ahead, behind); END_TYPE; -- ahead_or_behind TYPE angle_relator = ENUMERATION OF (equal, large, small); END_TYPE; -- angle_relator TYPE approved_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; -- approved_item TYPE area_or_view = SELECT (presentation_area, presentation_view); END_TYPE; -- area_or_view TYPE axis2_placement = SELECT (axis2_placement_2d, axis2_placement_3d); END_TYPE; -- axis2_placement TYPE b_spline_curve_form = ENUMERATION OF (polyline_form, circular_arc, elliptic_arc, parabolic_arc, hyperbolic_arc, unspecified); END_TYPE; -- b_spline_curve_form TYPE b_spline_surface_form = ENUMERATION OF (plane_surf, cylindrical_surf, conical_surf, spherical_surf, toroidal_surf, surf_of_revolution, ruled_surf, generalised_cone, quadric_surf, surf_of_linear_extrusion, unspecified); END_TYPE; -- b_spline_surface_form TYPE boolean_operand = SELECT (solid_model); END_TYPE; -- boolean_operand TYPE box_characteristic_select = SELECT (box_height, box_width, box_slant_angle, box_rotate_angle); END_TYPE; -- box_characteristic_select TYPE box_height = positive_ratio_measure; END_TYPE; -- box_height TYPE box_rotate_angle = plane_angle_measure; END_TYPE; -- box_rotate_angle TYPE box_slant_angle = plane_angle_measure; END_TYPE; -- box_slant_angle TYPE box_width = positive_ratio_measure; END_TYPE; -- box_width TYPE central_or_parallel = ENUMERATION OF (central, parallel); END_TYPE; -- central_or_parallel TYPE character_spacing_select = SELECT (length_measure, ratio_measure, measure_with_unit); END_TYPE; -- character_spacing_select TYPE character_style_select = SELECT (text_style_for_defined_font); END_TYPE; -- character_style_select TYPE characterized_definition = SELECT (characterized_product_definition, shape_definition); END_TYPE; -- characterized_definition TYPE characterized_product_definition = SELECT (product_definition); END_TYPE; -- characterized_product_definition TYPE classified_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; -- classified_item TYPE contracted_item = SELECT (drawing_revision); END_TYPE; -- contracted_item TYPE curve_font_or_scaled_curve_font_select = SELECT (curve_style_font_select); END_TYPE; -- curve_font_or_scaled_curve_font_select TYPE curve_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; -- curve_on_surface TYPE curve_or_annotation_curve_occurrence = SELECT (curve, annotation_curve_occurrence); END_TYPE; -- curve_or_annotation_curve_occurrence TYPE curve_or_render = SELECT (curve_style); END_TYPE; -- curve_or_render TYPE curve_style_font_select = SELECT (curve_style_font, pre_defined_curve_font, externally_defined_curve_font); END_TYPE; -- curve_style_font_select TYPE date_time_select = SELECT (date, local_time, date_and_time); END_TYPE; -- date_time_select TYPE day_in_month_number = INTEGER; END_TYPE; -- day_in_month_number TYPE defined_symbol_select = SELECT (pre_defined_symbol, externally_defined_symbol); END_TYPE; -- defined_symbol_select TYPE dimension_count = INTEGER; WHERE wr1: SELF > 0; END_TYPE; -- dimension_count TYPE dimension_extent_usage = ENUMERATION OF (origin, target); END_TYPE; -- dimension_extent_usage TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; -- dimensional_characteristic TYPE draughting_callout_element = SELECT (annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; -- draughting_callout_element TYPE draughting_group_element = SELECT (annotation_occurrence, point, curve, surface); END_TYPE; -- draughting_group_element TYPE draughting_organization_item = SELECT (product_definition_formation, drawing_revision, drawing_sheet_revision); END_TYPE; -- draughting_organization_item TYPE draughting_presented_item_select = SELECT (product_definition_formation); END_TYPE; -- draughting_presented_item_select TYPE draughting_titled_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; -- draughting_titled_item TYPE fill_area_style_tile_shape_select = SELECT (fill_area_style_tile_symbol_with_style); END_TYPE; -- fill_area_style_tile_shape_select TYPE fill_style_select = SELECT (fill_area_style_colour, externally_defined_tile_style, fill_area_style_tiles, externally_defined_hatch_style, fill_area_style_hatching); END_TYPE; -- fill_style_select TYPE font_select = SELECT (pre_defined_text_font, externally_defined_text_font); END_TYPE; -- font_select TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; -- geometric_set_select TYPE hiding_or_blanking_select = SELECT (presentation_area, presentation_view, annotation_fill_area); END_TYPE; -- hiding_or_blanking_select TYPE hour_in_day = INTEGER; WHERE wr1: (0 <= SELF) AND (SELF < 24); END_TYPE; -- hour_in_day TYPE identifier = STRING; END_TYPE; -- identifier TYPE invisibility_context = SELECT (presentation_layer_usage, presentation_representation, presentation_set); END_TYPE; -- invisibility_context TYPE invisible_item = SELECT (styled_item, presentation_layer_assignment, presentation_representation); END_TYPE; -- invisible_item TYPE knot_type = ENUMERATION OF (uniform_knots, unspecified, quasi_uniform_knots, piecewise_bezier_knots); END_TYPE; -- knot_type TYPE label = STRING; END_TYPE; -- label TYPE layered_item = SELECT (presentation_representation, representation_item); END_TYPE; -- layered_item TYPE length_measure = REAL; END_TYPE; -- length_measure TYPE list_of_reversible_topology_item = LIST [0:?] OF reversible_topology_item; END_TYPE; -- list_of_reversible_topology_item TYPE marker_select = SELECT (pre_defined_marker); END_TYPE; -- marker_select TYPE measure_value = SELECT (length_measure, plane_angle_measure, solid_angle_measure, ratio_measure, parameter_value, positive_length_measure, positive_ratio_measure); END_TYPE; -- measure_value TYPE minute_in_hour = INTEGER; WHERE wr1: (0 <= SELF) AND (SELF <= 59); END_TYPE; -- minute_in_hour TYPE month_in_year_number = INTEGER; WHERE wr1: (1 <= SELF) AND (SELF <= 12); END_TYPE; -- month_in_year_number TYPE null_style = ENUMERATION OF (null); END_TYPE; -- null_style TYPE parameter_value = REAL; END_TYPE; -- parameter_value TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; -- pcurve_or_surface TYPE person_organization_select = SELECT (person, organization, person_and_organization); END_TYPE; -- person_organization_select TYPE plane_angle_measure = REAL; END_TYPE; -- plane_angle_measure TYPE positive_length_measure = length_measure; WHERE wr1: SELF > 0; END_TYPE; -- positive_length_measure TYPE positive_ratio_measure = ratio_measure; WHERE wr1: SELF > 0; END_TYPE; -- positive_ratio_measure TYPE preferred_surface_curve_representation = ENUMERATION OF (curve_3d, pcurve_s1, pcurve_s2); END_TYPE; -- preferred_surface_curve_representation TYPE presentable_text = STRING; END_TYPE; -- presentable_text TYPE presentation_representation_select = SELECT (presentation_representation, presentation_set); END_TYPE; -- presentation_representation_select TYPE presentation_size_assignment_select = SELECT (presentation_view, presentation_area, area_in_set); END_TYPE; -- presentation_size_assignment_select TYPE presentation_style_select = SELECT (curve_style, symbol_style, fill_area_style, text_style, null_style); END_TYPE; -- presentation_style_select TYPE ratio_measure = REAL; END_TYPE; -- ratio_measure TYPE reversible_topology = SELECT (reversible_topology_item, list_of_reversible_topology_item, set_of_reversible_topology_item); END_TYPE; -- reversible_topology TYPE reversible_topology_item = SELECT (edge, path, face, face_bound, closed_shell, open_shell); END_TYPE; -- reversible_topology_item TYPE second_in_minute = REAL; WHERE wr1: (0 <= SELF) AND (SELF < 60); END_TYPE; -- second_in_minute TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_item; END_TYPE; -- set_of_reversible_topology_item TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; -- shape_definition TYPE shell = SELECT (vertex_shell, wire_shell, open_shell, closed_shell); END_TYPE; -- shell TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); END_TYPE; -- si_prefix TYPE si_unit_name = ENUMERATION OF (metre, gram, second, ampere, kelvin, mole, candela, radian, steradian, hertz, newton, pascal, joule, watt, coulomb, volt, farad, ohm, siemens, weber, tesla, henry, degree_celsius, lumen, lux, becquerel, gray, sievert); END_TYPE; -- si_unit_name TYPE size_select = SELECT (positive_length_measure, measure_with_unit); END_TYPE; -- size_select TYPE solid_angle_measure = REAL; END_TYPE; -- solid_angle_measure TYPE source_item = SELECT (identifier); END_TYPE; -- source_item TYPE specified_item = SELECT (drawing_revision); END_TYPE; -- specified_item TYPE style_context_select = SELECT (representation, representation_item, presentation_set); END_TYPE; -- style_context_select TYPE surface_model = SELECT (shell_based_surface_model); END_TYPE; -- surface_model TYPE symbol_style_select = SELECT (symbol_colour); END_TYPE; -- symbol_style_select TYPE text = STRING; END_TYPE; -- text TYPE text_alignment = label; END_TYPE; -- text_alignment TYPE text_delineation = label; END_TYPE; -- text_delineation TYPE text_or_character = SELECT (annotation_text, composite_text, text_literal); END_TYPE; -- text_or_character TYPE text_path = ENUMERATION OF (left, right, up, down); END_TYPE; -- text_path TYPE tolerance_method_definition = SELECT (tolerance_value); END_TYPE; -- tolerance_method_definition TYPE tolerance_select = SELECT (plus_minus_tolerance); END_TYPE; -- tolerance_select TYPE transformation = SELECT (functionally_defined_transformation); END_TYPE; -- transformation TYPE transition_code = ENUMERATION OF (discontinuous, continuous, cont_same_gradient, cont_same_gradient_same_curvature); END_TYPE; -- transition_code TYPE trimming_preference = ENUMERATION OF (cartesian, parameter, unspecified); END_TYPE; -- trimming_preference TYPE trimming_select = SELECT (cartesian_point, parameter_value); END_TYPE; -- trimming_select TYPE unit = SELECT (named_unit, derived_unit); END_TYPE; -- unit TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; -- vector_or_direction TYPE wireframe_model = SELECT (shell_based_wireframe_model, edge_based_wireframe_model); END_TYPE; -- wireframe_model TYPE year_number = INTEGER; END_TYPE; -- year_number ENTITY address; internal_location : OPTIONAL label; street_number : OPTIONAL label; street : OPTIONAL label; postal_box : OPTIONAL label; town : OPTIONAL label; region : OPTIONAL label; postal_code : OPTIONAL label; country : OPTIONAL label; facsimile_number : OPTIONAL label; telephone_number : OPTIONAL label; electronic_mail_address : OPTIONAL label; telex_number : OPTIONAL label; WHERE wr1: EXISTS(internal_location) OR EXISTS(street_number) OR EXISTS( street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS( region) OR EXISTS(postal_code) OR EXISTS(country) OR EXISTS( facsimile_number) OR EXISTS(telephone_number) OR EXISTS( electronic_mail_address) OR EXISTS(telex_number); END_ENTITY; -- address ENTITY advanced_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP', 'ASSOCIATIVE_DRAUGHTING.FACETED_BREP', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0; wr2: SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) > 0; wr3: SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh\ connected_face_set.cfs_faces | (NOT ( 'ASSOCIATIVE_DRAUGHTING.ADVANCED_FACE' IN TYPEOF(fcs))) )) = 0)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | ('ASSOCIATIVE_DRAUGHTING.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer)) )) = 0; wr5: SIZEOF(QUERY ( brv <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.BREP_WITH_VOIDS' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* brv\brep_with_voids.voids | csh\ oriented_closed_shell.orientation )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT ( 'ASSOCIATIVE_DRAUGHTING.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation))) )) = 0; END_ENTITY; -- advanced_brep_shape_representation ENTITY advanced_face SUBTYPE OF (face_surface); WHERE wr1 : SIZEOF(['ASSOCIATIVE_DRAUGHTING.ELEMENTARY_SURFACE', 'ASSOCIATIVE_DRAUGHTING.B_SPLINE_SURFACE', 'ASSOCIATIVE_DRAUGHTING.SWEPT_SURFACE'] * TYPEOF( face_geometry)) = 1; wr2 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* SELF.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (NOT ('ASSOCIATIVE_DRAUGHTING.EDGE_CURVE' IN TYPEOF(oe.edge_element))) )) = 0)) )) = 0; wr3 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* SELF.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (NOT (SIZEOF(['ASSOCIATIVE_DRAUGHTING.LINE', 'ASSOCIATIVE_DRAUGHTING.CONIC', 'ASSOCIATIVE_DRAUGHTING.POLYLINE', 'ASSOCIATIVE_DRAUGHTING.SURFACE_CURVE', 'ASSOCIATIVE_DRAUGHTING.B_SPLINE_CURVE'] * TYPEOF(oe. edge_element\edge_curve.edge_geometry)) = 1)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* SELF.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (NOT (('ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(oe.edge_start)) AND ( 'ASSOCIATIVE_DRAUGHTING.CARTESIAN_POINT' IN TYPEOF(oe. edge_start\vertex_point.vertex_geometry)) AND ( 'ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(oe.edge_end)) AND ('ASSOCIATIVE_DRAUGHTING.CARTESIAN_POINT' IN TYPEOF(oe. edge_end\vertex_point.vertex_geometry)))) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* SELF.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | ('ASSOCIATIVE_DRAUGHTING.ORIENTED_PATH' IN TYPEOF( elp_fbnds.bound)) )) = 0; wr6 : (NOT ('ASSOCIATIVE_DRAUGHTING.SWEPT_SURFACE' IN TYPEOF( face_geometry))) OR (SIZEOF(['ASSOCIATIVE_DRAUGHTING.LINE', 'ASSOCIATIVE_DRAUGHTING.CONIC', 'ASSOCIATIVE_DRAUGHTING.POLYLINE', 'ASSOCIATIVE_DRAUGHTING.B_SPLINE_CURVE'] * TYPEOF( face_geometry\swept_surface.swept_curve)) = 1); wr7 : SIZEOF(QUERY ( vlp_fbnds <* QUERY ( bnds <* SELF.bounds | ( 'ASSOCIATIVE_DRAUGHTING.VERTEX_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (('ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ( 'ASSOCIATIVE_DRAUGHTING.CARTESIAN_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\ vertex_point.vertex_geometry)))) )) = 0; wr8 : SIZEOF(QUERY ( bnd <* SELF.bounds | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP', 'ASSOCIATIVE_DRAUGHTING.VERTEX_LOOP'] * TYPEOF(bnd.bound)) = 1)) )) = 0; wr9 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* SELF.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (('ASSOCIATIVE_DRAUGHTING.SURFACE_CURVE' IN TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND (NOT (SIZEOF(QUERY ( sc_ag <* oe.edge_element\edge_curve. edge_geometry\surface_curve.associated_geometry | (NOT ( 'ASSOCIATIVE_DRAUGHTING.PCURVE' IN TYPEOF(sc_ag))) )) = 0))))) = 0)) )) = 0; wr10: ((NOT ('ASSOCIATIVE_DRAUGHTING.SWEPT_SURFACE' IN TYPEOF( face_geometry))) OR (NOT ('ASSOCIATIVE_DRAUGHTING.POLYLINE' IN TYPEOF(face_geometry\swept_surface.swept_curve))) OR ( SIZEOF(face_geometry\swept_surface.swept_curve\polyline. points) < 3)) AND (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* SELF.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (('ASSOCIATIVE_DRAUGHTING.POLYLINE' IN TYPEOF( oe.edge_element\edge_curve.edge_geometry)) AND (NOT ( SIZEOF(oe.edge_element\edge_curve.edge_geometry\polyline. points) < 3))) )) = 0)) )) = 0); END_ENTITY; -- advanced_face ENTITY angular_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- angular_dimension ENTITY angular_location SUBTYPE OF (dimensional_location); angle_selection : angle_relator; END_ENTITY; -- angular_location ENTITY annotation_curve_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.CURVE' IN TYPEOF(SELF\styled_item.item); END_ENTITY; -- annotation_curve_occurrence ENTITY annotation_fill_area SUBTYPE OF (geometric_representation_item); boundaries : SET [1:?] OF curve; END_ENTITY; -- annotation_fill_area ENTITY annotation_fill_area_occurrence SUBTYPE OF (annotation_occurrence); fill_style_target : point; WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_FILL_AREA' IN TYPEOF(SELF. item); END_ENTITY; -- annotation_fill_area_occurrence ENTITY annotation_occurrence SUPERTYPE OF (ONEOF (annotation_curve_occurrence, annotation_fill_area_occurrence,annotation_text_occurrence, annotation_symbol_occurrence)) SUBTYPE OF (styled_item); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- annotation_occurrence ENTITY annotation_occurrence_associativity SUBTYPE OF (annotation_occurrence_relationship); WHERE wr1: SIZEOF(TYPEOF(SELF.related_annotation_occurrence) * [ 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_FILL_AREA_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.PROJECTION_CURVE', 'ASSOCIATIVE_DRAUGHTING.LEADER_CURVE']) = 1; END_ENTITY; -- annotation_occurrence_associativity ENTITY annotation_occurrence_relationship; name : label; description : text; relating_annotation_occurrence : annotation_occurrence; related_annotation_occurrence : annotation_occurrence; END_ENTITY; -- annotation_occurrence_relationship ENTITY annotation_subfigure_occurrence SUBTYPE OF (annotation_symbol_occurrence); WHERE wr1: SIZEOF(QUERY ( sty <* SELF.styles | (NOT (SIZEOF(sty.styles) = 1)) )) = 0; wr2: SIZEOF(QUERY ( sty <* SELF.styles | (NOT ( 'ASSOCIATIVE_DRAUGHTING.NULL_STYLE' IN TYPEOF(sty.styles[1]))) )) = 0; wr3: 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item); wr4: 'ASSOCIATIVE_DRAUGHTING.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF(SELF.item\mapped_item.mapping_source. mapped_representation); END_ENTITY; -- annotation_subfigure_occurrence ENTITY annotation_symbol SUBTYPE OF (mapped_item); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.SYMBOL_REPRESENTATION_MAP' IN TYPEOF( SELF\mapped_item.mapping_source); wr2: 'ASSOCIATIVE_DRAUGHTING.SYMBOL_TARGET' IN TYPEOF(SELF\ mapped_item.mapping_target); wr3: 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- annotation_symbol ENTITY annotation_symbol_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1: SIZEOF(['ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL', 'ASSOCIATIVE_DRAUGHTING.DEFINED_SYMBOL'] * TYPEOF(SELF\ styled_item.item)) > 0; END_ENTITY; -- annotation_symbol_occurrence ENTITY annotation_text SUBTYPE OF (mapped_item); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT' IN TYPEOF(SELF\ mapped_item.mapping_target); wr2: 'ASSOCIATIVE_DRAUGHTING.TEXT_STRING_REPRESENTATION' IN TYPEOF( SELF\mapped_item.mapping_source.mapped_representation); wr3: 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- annotation_text ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1: SIZEOF(['ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_CHARACTER', 'ASSOCIATIVE_DRAUGHTING.DEFINED_CHARACTER_GLYPH', 'ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT'] * TYPEOF(SELF\ styled_item.item)) > 0; END_ENTITY; -- annotation_text_occurrence ENTITY application_context; application : text; INVERSE context_elements : SET [1:?] OF application_context_element FOR frame_of_reference; END_ENTITY; -- application_context ENTITY application_context_element SUPERTYPE OF (ONEOF (product_context,product_definition_context)); name : label; frame_of_reference : application_context; END_ENTITY; -- application_context_element ENTITY application_protocol_definition; status : label; application_interpreted_model_schema_name : label; application_protocol_year : year_number; application : application_context; END_ENTITY; -- application_protocol_definition ENTITY approval; status : approval_status; level : label; END_ENTITY; -- approval ENTITY approval_assignment ABSTRACT SUPERTYPE; assigned_approval : approval; END_ENTITY; -- approval_assignment ENTITY approval_date_time; date_time : date_time_select; dated_approval : approval; END_ENTITY; -- approval_date_time ENTITY approval_person_organization; person_organization : person_organization_select; authorized_approval : approval; role : approval_role; END_ENTITY; -- approval_person_organization ENTITY approval_role; role : label; END_ENTITY; -- approval_role ENTITY approval_status; name : label; END_ENTITY; -- approval_status ENTITY area_in_set; area : presentation_area; in_set : presentation_set; END_ENTITY; -- area_in_set ENTITY axis1_placement SUBTYPE OF (placement); axis : OPTIONAL direction; DERIVE z : direction := NVL(normalise(axis),direction([0,0,1])); WHERE wr1: SELF\geometric_representation_item.dim = 3; END_ENTITY; -- axis1_placement ENTITY axis2_placement_2d SUBTYPE OF (placement); ref_direction : OPTIONAL direction; DERIVE p : LIST [2:2] OF direction := build_2axes(ref_direction); WHERE wr1: SELF\geometric_representation_item.dim = 2; END_ENTITY; -- axis2_placement_2d ENTITY axis2_placement_3d SUBTYPE OF (placement); axis : OPTIONAL direction; ref_direction : OPTIONAL direction; DERIVE p : LIST [3:3] OF direction := build_axes(axis,ref_direction); WHERE wr1: SELF\placement.location.dim = 3; wr2: (NOT EXISTS(axis)) OR (axis.dim = 3); wr3: (NOT EXISTS(ref_direction)) OR (ref_direction.dim = 3); wr4: (NOT EXISTS(axis)) OR (NOT EXISTS(ref_direction)) OR ( cross_product(axis,ref_direction).magnitude > 0); END_ENTITY; -- axis2_placement_3d ENTITY b_spline_curve SUPERTYPE OF (ONEOF (uniform_curve,b_spline_curve_with_knots, quasi_uniform_curve,bezier_curve) ANDOR rational_b_spline_curve) SUBTYPE OF (bounded_curve); degree : INTEGER; control_points_list : LIST [2:?] OF cartesian_point; curve_form : b_spline_curve_form; closed_curve : LOGICAL; self_intersect : LOGICAL; DERIVE upper_index_on_control_points : INTEGER := SIZEOF( control_points_list) - 1; control_points : ARRAY [0: upper_index_on_control_points] OF cartesian_point := list_to_array( control_points_list,0, upper_index_on_control_points); WHERE wr1: ('ASSOCIATIVE_DRAUGHTING.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'ASSOCIATIVE_DRAUGHTING.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF)) OR ('ASSOCIATIVE_DRAUGHTING.BEZIER_CURVE' IN TYPEOF(SELF)) OR ('ASSOCIATIVE_DRAUGHTING.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; -- b_spline_curve ENTITY b_spline_curve_with_knots SUBTYPE OF (b_spline_curve); knot_multiplicities : LIST [2:?] OF INTEGER; knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE upper_index_on_knots : INTEGER := SIZEOF(knots); WHERE wr1: constraints_param_b_spline(degree,upper_index_on_knots, upper_index_on_control_points,knot_multiplicities,knots); wr2: SIZEOF(knot_multiplicities) = upper_index_on_knots; END_ENTITY; -- b_spline_curve_with_knots ENTITY b_spline_surface SUPERTYPE OF (ONEOF (b_spline_surface_with_knots,uniform_surface, quasi_uniform_surface,bezier_surface) ANDOR rational_b_spline_surface) SUBTYPE OF (bounded_surface); u_degree : INTEGER; v_degree : INTEGER; control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point; surface_form : b_spline_surface_form; u_closed : LOGICAL; v_closed : LOGICAL; self_intersect : LOGICAL; DERIVE u_upper : INTEGER := SIZEOF(control_points_list) - 1; v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; control_points : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF cartesian_point := make_array_of_array( control_points_list,0,u_upper,0,v_upper); WHERE wr1: ('ASSOCIATIVE_DRAUGHTING.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ( 'ASSOCIATIVE_DRAUGHTING.QUASI_UNIFORM_SURFACE' IN TYPEOF( SELF)) OR ('ASSOCIATIVE_DRAUGHTING.BEZIER_SURFACE' IN TYPEOF(SELF)) OR ( 'ASSOCIATIVE_DRAUGHTING.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; -- b_spline_surface ENTITY b_spline_surface_with_knots SUBTYPE OF (b_spline_surface); u_multiplicities : LIST [2:?] OF INTEGER; v_multiplicities : LIST [2:?] OF INTEGER; u_knots : LIST [2:?] OF parameter_value; v_knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE knot_u_upper : INTEGER := SIZEOF(u_knots); knot_v_upper : INTEGER := SIZEOF(v_knots); WHERE wr1: constraints_param_b_spline(SELF\b_spline_surface.u_degree, knot_u_upper,SELF\b_spline_surface.u_upper,u_multiplicities, u_knots); wr2: constraints_param_b_spline(SELF\b_spline_surface.v_degree, knot_v_upper,SELF\b_spline_surface.v_upper,v_multiplicities, v_knots); wr3: SIZEOF(u_multiplicities) = knot_u_upper; wr4: SIZEOF(v_multiplicities) = knot_v_upper; END_ENTITY; -- b_spline_surface_with_knots ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- bezier_curve ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- bezier_surface ENTITY boundary_curve SUBTYPE OF (composite_curve_on_surface); WHERE wr1: SELF\composite_curve.closed_curve; END_ENTITY; -- boundary_curve ENTITY bounded_curve SUPERTYPE OF (ONEOF (polyline,b_spline_curve,trimmed_curve, composite_curve)) SUBTYPE OF (curve); END_ENTITY; -- bounded_curve ENTITY bounded_surface SUPERTYPE OF (ONEOF (b_spline_surface,rectangular_trimmed_surface, curve_bounded_surface,rectangular_composite_surface)) SUBTYPE OF (surface); END_ENTITY; -- bounded_surface ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; END_ENTITY; -- brep_with_voids ENTITY calendar_date SUBTYPE OF (date); day_component : day_in_month_number; month_component : month_in_year_number; WHERE wr1: valid_calendar_date(SELF); END_ENTITY; -- calendar_date ENTITY camera_image SUBTYPE OF (mapped_item); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.CAMERA_USAGE' IN TYPEOF(SELF\ mapped_item.mapping_source); wr2: 'ASSOCIATIVE_DRAUGHTING.PLANAR_BOX' IN TYPEOF(SELF\mapped_item. mapping_target); wr3: 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; -- camera_image ENTITY camera_image_2d_with_scale SUBTYPE OF (camera_image); DERIVE scale : positive_ratio_measure := SELF\mapped_item.mapping_target\ planar_extent.size_in_x / SELF\mapped_item.mapping_source. mapping_origin\camera_model_d2.view_window.size_in_x; WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.CAMERA_MODEL_D2' IN TYPEOF(SELF\ mapped_item.mapping_source.mapping_origin); wr2: aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio( SELF\mapped_item.mapping_source.mapping_origin\ camera_model_d2.view_window); wr3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2. view_window_clipping; END_ENTITY; -- camera_image_2d_with_scale ENTITY camera_image_3d_with_scale SUBTYPE OF (camera_image); DERIVE scale : positive_ratio_measure := SELF\mapped_item.mapping_target\ planar_extent.size_in_x / SELF\mapped_item.mapping_source. mapping_origin\camera_model_d3.perspective_of_volume. view_window.size_in_x; WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.CAMERA_MODEL_D3' IN TYPEOF(SELF\ mapped_item.mapping_source.mapping_origin); wr2: aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio( SELF\mapped_item.mapping_source.mapping_origin\ camera_model_d3.perspective_of_volume.view_window); wr3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.front_plane_clipping AND SELF\ mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_volume_sides_clipping; END_ENTITY; -- camera_image_3d_with_scale ENTITY camera_model SUPERTYPE OF (ONEOF (camera_model_d2,camera_model_d3)) SUBTYPE OF (geometric_representation_item); WHERE wr1: (SIZEOF(USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'ITEM_DEFINED_TRANSFORMATION.' + 'TRANSFORM_ITEM_1')) + SIZEOF(USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN'))) > 0; wr2: SIZEOF(USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'STYLED_ITEM.ITEM')) = 0; END_ENTITY; -- camera_model ENTITY camera_model_d2 SUBTYPE OF (camera_model); view_window : planar_box; view_window_clipping : BOOLEAN; WHERE wr1: SELF\geometric_representation_item.dim = 2; END_ENTITY; -- camera_model_d2 ENTITY camera_model_d3 SUBTYPE OF (camera_model); view_reference_system : axis2_placement_3d; perspective_of_volume : view_volume; WHERE wr1: (dot_product(SELF.view_reference_system.p[3],SELF. perspective_of_volume.view_window.placement.p[3]) = 1) AND ( SELF.view_reference_system.location.coordinates[3] = SELF. perspective_of_volume.view_window.placement.location. coordinates[3]); wr2: SELF\geometric_representation_item.dim = 3; END_ENTITY; -- camera_model_d3 ENTITY camera_model_d3_with_hlhsr SUBTYPE OF (camera_model_d3); hidden_line_surface_removal : BOOLEAN; END_ENTITY; -- camera_model_d3_with_hlhsr ENTITY camera_usage SUBTYPE OF (representation_map); WHERE wr1: NOT ('ASSOCIATIVE_DRAUGHTING.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\representation_map.mapped_representation)); wr2: 'ASSOCIATIVE_DRAUGHTING.CAMERA_MODEL' IN TYPEOF(SELF\ representation_map.mapping_origin); END_ENTITY; -- camera_usage ENTITY cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; -- cartesian_point ENTITY cartesian_transformation_operator SUPERTYPE OF (ONEOF (cartesian_transformation_operator_2d, cartesian_transformation_operator_3d)) SUBTYPE OF (geometric_representation_item, functionally_defined_transformation); axis1 : OPTIONAL direction; axis2 : OPTIONAL direction; local_origin : cartesian_point; scale : OPTIONAL REAL; DERIVE scl : REAL := NVL(scale,1); WHERE wr1: scl > 0; END_ENTITY; -- cartesian_transformation_operator ENTITY cartesian_transformation_operator_2d SUBTYPE OF (cartesian_transformation_operator); DERIVE u : LIST [2:2] OF direction := base_axis(2,SELF\ cartesian_transformation_operator.axis1,SELF\ cartesian_transformation_operator.axis2,?); WHERE wr1: SELF\cartesian_transformation_operator.dim = 2; END_ENTITY; -- cartesian_transformation_operator_2d ENTITY cartesian_transformation_operator_3d SUBTYPE OF (cartesian_transformation_operator); axis3 : OPTIONAL direction; DERIVE u : LIST [3:3] OF direction := base_axis(3,SELF\ cartesian_transformation_operator.axis1,SELF\ cartesian_transformation_operator.axis2,axis3); WHERE wr1: SELF\cartesian_transformation_operator.dim = 3; END_ENTITY; -- cartesian_transformation_operator_3d ENTITY centre_of_symmetry SUBTYPE OF (derived_shape_aspect); WHERE wr1: SIZEOF(QUERY ( sadr <* deriving_relationships | (NOT ( 'ASSOCIATIVE_DRAUGHTING.SYMMETRIC_SHAPE_ASPECT' IN TYPEOF( sadr.related_shape_aspect))) )) = 0; END_ENTITY; -- centre_of_symmetry ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; -- circle ENTITY closed_shell SUBTYPE OF (connected_face_set); END_ENTITY; -- closed_shell ENTITY colour; END_ENTITY; -- colour ENTITY colour_rgb SUBTYPE OF (colour_specification); red : REAL; green : REAL; blue : REAL; WHERE wr1: (0 <= red) AND (red <= 1); wr2: (0 <= green) AND (green <= 1); wr3: (0 <= blue) AND (blue <= 1); END_ENTITY; -- colour_rgb ENTITY colour_specification SUBTYPE OF (colour); name : label; END_ENTITY; -- colour_specification ENTITY composite_curve SUBTYPE OF (bounded_curve); segments : LIST [1:?] OF composite_curve_segment; self_intersect : LOGICAL; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; WHERE wr1: ((NOT closed_curve) AND (SIZEOF(QUERY ( temp <* segments | ( temp.transition = discontinuous) )) = 1)) OR (closed_curve AND (SIZEOF(QUERY ( temp <* segments | (temp.transition = discontinuous) )) = 0)); END_ENTITY; -- composite_curve ENTITY composite_curve_on_surface SUPERTYPE OF (boundary_curve) SUBTYPE OF (composite_curve); DERIVE basis_surface : SET [0:2] OF surface := get_basis_surface(SELF); WHERE wr1: SIZEOF(basis_surface) > 0; wr2: constraints_composite_curve_on_surface(SELF); END_ENTITY; -- composite_curve_on_surface ENTITY composite_curve_segment; transition : transition_code; same_sense : BOOLEAN; parent_curve : curve; INVERSE using_curves : BAG [1:?] OF composite_curve FOR segments; WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.BOUNDED_CURVE' IN TYPEOF(parent_curve); END_ENTITY; -- composite_curve_segment ENTITY composite_text SUBTYPE OF (geometric_representation_item); collected_text : SET [2:?] OF text_or_character; WHERE wr1: acyclic_composite_text(SELF,SELF.collected_text); END_ENTITY; -- composite_text ENTITY composite_text_with_associated_curves SUBTYPE OF (composite_text); associated_curves : SET [1:?] OF curve; END_ENTITY; -- composite_text_with_associated_curves ENTITY composite_text_with_blanking_box SUBTYPE OF (composite_text); blanking : planar_box; END_ENTITY; -- composite_text_with_blanking_box ENTITY composite_text_with_extent SUBTYPE OF (composite_text); extent : planar_extent; END_ENTITY; -- composite_text_with_extent ENTITY conic SUPERTYPE OF (ONEOF (circle,ellipse,hyperbola,parabola)) SUBTYPE OF (curve); position : axis2_placement; END_ENTITY; -- conic ENTITY conical_surface SUBTYPE OF (elementary_surface); radius : length_measure; semi_angle : plane_angle_measure; WHERE wr1: radius >= 0; END_ENTITY; -- conical_surface ENTITY connected_edge_set SUBTYPE OF (topological_representation_item); ces_edges : SET [1:?] OF edge; END_ENTITY; -- connected_edge_set ENTITY connected_face_set SUPERTYPE OF (ONEOF (closed_shell,open_shell)) SUBTYPE OF (topological_representation_item); cfs_faces : SET [1:?] OF face; END_ENTITY; -- connected_face_set ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; -- context_dependent_invisibility ENTITY context_dependent_over_riding_styled_item SUBTYPE OF (over_riding_styled_item); style_context : SET [1:2] OF style_context_select; WHERE wr1: (SIZEOF(QUERY ( sc <* SELF.style_context | ( 'ASSOCIATIVE_DRAUGHTING.REPRESENTATION' IN TYPEOF(sc)) )) = 1) AND (SIZEOF(QUERY ( sc <* SELF.style_context | ( 'ASSOCIATIVE_DRAUGHTING.REPRESENTATION_ITEM' IN TYPEOF(sc)) )) = 1); END_ENTITY; -- context_dependent_over_riding_styled_item ENTITY contract; name : label; purpose : text; kind : contract_type; END_ENTITY; -- contract ENTITY contract_assignment ABSTRACT SUPERTYPE; assigned_contract : contract; END_ENTITY; -- contract_assignment ENTITY contract_type; description : label; END_ENTITY; -- contract_type ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; END_ENTITY; -- conversion_based_unit ENTITY coordinated_universal_time_offset; hour_offset : hour_in_day; minute_offset : OPTIONAL minute_in_hour; sense : ahead_or_behind; END_ENTITY; -- coordinated_universal_time_offset ENTITY curve SUPERTYPE OF (ONEOF (line,conic,pcurve,surface_curve,offset_curve_2d, offset_curve_3d,curve_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- curve ENTITY curve_bounded_surface SUBTYPE OF (bounded_surface); basis_surface : surface; boundaries : SET [1:?] OF boundary_curve; implicit_outer : BOOLEAN; WHERE wr1: NOT (implicit_outer AND ( 'ASSOCIATIVE_DRAUGHTING.OUTER_BOUNDARY_CURVE' IN TYPEOF( boundaries))); wr2: (NOT implicit_outer) OR ( 'ASSOCIATIVE_DRAUGHTING.BOUNDED_SURFACE' IN TYPEOF( basis_surface)); wr3: SIZEOF(QUERY ( temp <* boundaries | ( 'ASSOCIATIVE_DRAUGHTING.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp)) )) <= 1; wr4: SIZEOF(QUERY ( temp <* boundaries | (temp\ composite_curve_on_surface.basis_surface[1] :<>: SELF. basis_surface) )) = 0; END_ENTITY; -- curve_bounded_surface ENTITY curve_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- curve_dimension ENTITY curve_replica SUBTYPE OF (curve); parent_curve : curve; transformation : cartesian_transformation_operator; WHERE wr1: transformation.dim = parent_curve.dim; wr2: acyclic_curve_replica(SELF,parent_curve); END_ENTITY; -- curve_replica ENTITY curve_style; name : label; curve_font : curve_font_or_scaled_curve_font_select; curve_width : size_select; curve_colour : colour; END_ENTITY; -- curve_style ENTITY curve_style_font; name : label; pattern_list : LIST [1:?] OF curve_style_font_pattern; END_ENTITY; -- curve_style_font ENTITY curve_style_font_pattern; visible_segment_length : positive_length_measure; invisible_segment_length : positive_length_measure; END_ENTITY; -- curve_style_font_pattern ENTITY cylindrical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; -- cylindrical_surface ENTITY date SUPERTYPE OF (calendar_date); year_component : year_number; END_ENTITY; -- date ENTITY date_and_time; date_component : date; time_component : local_time; END_ENTITY; -- date_and_time ENTITY datum_feature_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- datum_feature_callout ENTITY datum_target_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- datum_target_callout ENTITY defined_symbol SUBTYPE OF (geometric_representation_item); definition : defined_symbol_select; target : symbol_target; END_ENTITY; -- defined_symbol ENTITY definitional_representation SUBTYPE OF (representation); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); END_ENTITY; -- definitional_representation ENTITY degenerate_pcurve SUBTYPE OF (point); basis_surface : surface; reference_to_curve : definitional_representation; WHERE wr1: SIZEOF(reference_to_curve\representation.items) = 1; wr2: 'ASSOCIATIVE_DRAUGHTING.CURVE' IN TYPEOF(reference_to_curve\ representation.items[1]); wr3: reference_to_curve\representation.items[1]\ geometric_representation_item.dim = 2; END_ENTITY; -- degenerate_pcurve ENTITY degenerate_toroidal_surface SUBTYPE OF (toroidal_surface); select_outer : BOOLEAN; WHERE wr1: major_radius < minor_radius; END_ENTITY; -- degenerate_toroidal_surface ENTITY derived_shape_aspect SUPERTYPE OF (ONEOF (centre_of_symmetry,tangent)) SUBTYPE OF (shape_aspect); INVERSE deriving_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; END_ENTITY; -- derived_shape_aspect ENTITY derived_unit; elements : SET [1:?] OF derived_unit_element; WHERE wr1: (SIZEOF(elements) > 1) OR ((SIZEOF(elements) = 1) AND (elements [1].exponent <> 1)); END_ENTITY; -- derived_unit ENTITY derived_unit_element; unit : named_unit; exponent : REAL; END_ENTITY; -- derived_unit_element ENTITY diameter_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- diameter_dimension ENTITY dimension_callout_component_relationship SUBTYPE OF (draughting_callout_relationship); WHERE wr1: SELF.name IN ['prefix','suffix']; wr2: 'ASSOCIATIVE_DRAUGHTING.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF.relating_draughting_callout); wr3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'ASSOCIATIVE_DRAUGHTING.LEADER_DIRECTED_CALLOUT', 'ASSOCIATIVE_DRAUGHTING.PROJECTION_DIRECTED_CALLOUT', 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CURVE_DIRECTED_CALLOUT', 'ASSOCIATIVE_DRAUGHTING.STRUCTURED_DIMENSION_CALLOUT']) = 0; wr4: (SELF.related_draughting_callout.contents * SELF. relating_draughting_callout.contents) = SELF. related_draughting_callout.contents; wr5: (SELF.name = 'prefix') AND (SIZEOF(QUERY ( ato <* QUERY ( con <* SELF.related_draughting_callout.contents | ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) ) | (NOT (ato.name = 'prefix text')) )) = 0); wr6: (SELF.name = 'suffix') AND (SIZEOF(QUERY ( ato <* QUERY ( con <* SELF.related_draughting_callout.contents | ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) ) | (NOT (ato.name = 'suffix text')) )) = 0); END_ENTITY; -- dimension_callout_component_relationship ENTITY dimension_callout_relationship SUBTYPE OF (draughting_callout_relationship); WHERE wr1: SELF.name IN ['primary','secondary']; wr2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'ASSOCIATIVE_DRAUGHTING.ANGULAR_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.CURVE_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.DIAMETER_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.LEADER_DIRECTED_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.LINEAR_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.ORDINATE_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.RADIUS_DIMENSION']) = 1; wr3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CURVE_DIRECTED_CALLOUT', 'ASSOCIATIVE_DRAUGHTING.PROJECTION_DIRECTED_CALLOUT', 'ASSOCIATIVE_DRAUGHTING.LEADER_DIRECTED_CALLOUT']) = 0; wr4: (SELF.related_draughting_callout.contents * SELF. relating_draughting_callout.contents) = SELF. related_draughting_callout.contents; END_ENTITY; -- dimension_callout_relationship ENTITY dimension_curve SUBTYPE OF (annotation_curve_occurrence); WHERE wr1: SIZEOF(USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'DIMENSION_CURVE_TERMINATOR.ANNOTATED_DIMENSION_CURVE')) <= 2; wr2: SIZEOF(USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT.CONTENTS')) >= 1; wr3: (SIZEOF(QUERY ( dct_1 <* USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'DIMENSION_CURVE_TERMINATOR.ANNOTATED_DIMENSION_CURVE') | (dct_1.role = origin) )) <= 1) AND (SIZEOF( QUERY ( dct_2 <* USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'DIMENSION_CURVE_TERMINATOR.ANNOTATED_DIMENSION_CURVE') | (dct_2.role = target) )) <= 1); END_ENTITY; -- dimension_curve ENTITY dimension_curve_directed_callout SUBTYPE OF (draughting_callout); WHERE wr1: SIZEOF(QUERY ( d_c <* SELF\draughting_callout.contents | ( 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CURVE' IN TYPEOF(d_c)) )) = 1; wr2: SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- dimension_curve_directed_callout ENTITY dimension_curve_terminator SUBTYPE OF (terminator_symbol); role : dimension_extent_usage; WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CURVE' IN TYPEOF(SELF\ terminator_symbol.annotated_curve); END_ENTITY; -- dimension_curve_terminator ENTITY dimension_pair SUBTYPE OF (draughting_callout_relationship); WHERE wr1: SELF.name IN ['chained','parallel']; wr2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'ASSOCIATIVE_DRAUGHTING.ANGULAR_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.CURVE_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.DIAMETER_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.LINEAR_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.ORDINATE_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.RADIUS_DIMENSION']) = 1; wr3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'ASSOCIATIVE_DRAUGHTING.ANGULAR_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.CURVE_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.DIAMETER_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.LINEAR_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.ORDINATE_DIMENSION', 'ASSOCIATIVE_DRAUGHTING.RADIUS_DIMENSION']) = 1; END_ENTITY; -- dimension_pair ENTITY dimension_text_associativity SUBTYPE OF (text_literal, mapped_item); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); wr2: 'ASSOCIATIVE_DRAUGHTING.DRAUGHTING_CALLOUT' IN TYPEOF(SELF\ mapped_item.mapping_target); wr3: SIZEOF(QUERY ( ato <* QUERY ( si <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.STYLED_ITEM.ITEM') | ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(si)) ) | (NOT (SIZEOF(QUERY ( dc <* USEDIN(ato, 'ASSOCIATIVE_DRAUGHTING.DRAUGHTING_CALLOUT.' + 'CONTENTS') | ('ASSOCIATIVE_DRAUGHTING.DRAUGHTING_CALLOUT' IN TYPEOF(dc)) ) * [SELF\mapped_item.mapping_target]) = 1)) )) = 0; END_ENTITY; -- dimension_text_associativity ENTITY dimensional_characteristic_representation; dimension : dimensional_characteristic; representation : shape_dimension_representation; END_ENTITY; -- dimensional_characteristic_representation ENTITY dimensional_exponents; length_exponent : REAL; mass_exponent : REAL; time_exponent : REAL; electric_current_exponent : REAL; thermodynamic_temperature_exponent : REAL; amount_of_substance_exponent : REAL; luminous_intensity_exponent : REAL; END_ENTITY; -- dimensional_exponents ENTITY dimensional_location SUPERTYPE OF (ONEOF (angular_location,dimensional_location_with_path)) SUBTYPE OF (shape_aspect_relationship); END_ENTITY; -- dimensional_location ENTITY dimensional_location_with_path SUBTYPE OF (dimensional_location); path : shape_aspect; END_ENTITY; -- dimensional_location_with_path ENTITY dimensional_size; applies_to : shape_aspect; name : label; WHERE wr1: applies_to.product_definitional = TRUE; END_ENTITY; -- dimensional_size ENTITY direction SUBTYPE OF (geometric_representation_item); direction_ratios : LIST [2:3] OF REAL; WHERE wr1: SIZEOF(QUERY ( tmp <* direction_ratios | (tmp <> 0) )) > 0; END_ENTITY; -- direction ENTITY document; id : identifier; name : label; description : text; kind : document_type; UNIQUE ur1 : id; END_ENTITY; -- document ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; END_ENTITY; -- document_reference ENTITY document_type; product_data_type : label; END_ENTITY; -- document_type ENTITY draughting_annotation_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : (NOT ('ASSOCIATIVE_DRAUGHTING.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY ( sty <* SELF.styles | ( NOT ((SIZEOF(sty.styles) = 1) AND ( 'ASSOCIATIVE_DRAUGHTING.CURVE_STYLE' IN TYPEOF(sty.styles[1])))) )) = 0); wr2 : (NOT ('ASSOCIATIVE_DRAUGHTING.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY ( sty <* SELF.styles | ( NOT ((SIZEOF(sty.styles) = 1) AND ( 'ASSOCIATIVE_DRAUGHTING.FILL_AREA_STYLE' IN TYPEOF(sty. styles[1])))) )) = 0); wr3 : (NOT ('ASSOCIATIVE_DRAUGHTING.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY ( bound <* SELF.item\ annotation_fill_area.boundaries | (NOT (SIZEOF( QUERY ( si <* USEDIN(bound,'ASSOCIATIVE_DRAUGHTING.' + 'STYLED_ITEM.ITEM') | (('ASSOCIATIVE_DRAUGHTING.' + 'ANNOTATION_CURVE_OCCURRENCE') IN TYPEOF(si)) )) > 0)) )) = 0); wr4 : (NOT ('ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY ( sty <* SELF.styles | ( NOT ((SIZEOF(sty.styles) = 1) AND (SIZEOF(TYPEOF(sty.styles [1]) * ['ASSOCIATIVE_DRAUGHTING.SYMBOL_STYLE', 'ASSOCIATIVE_DRAUGHTING.NULL_STYLE']) = 1))) )) = 0); wr5 : (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL' IN TYPEOF(SELF. item)))) OR (SIZEOF(['ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF(SELF.item\ mapped_item.mapping_source.mapped_representation)) = 1); wr6 : (NOT ('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY ( sty <* SELF.styles | ( NOT ((SIZEOF(sty.styles) = 1) AND ( 'ASSOCIATIVE_DRAUGHTING.TEXT_STYLE' IN TYPEOF(sty.styles[1])))) )) = 0); wr7 : NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF.item) * [ 'ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT', 'ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL']) = 1)); wr8 : (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY ( tl <* SELF.item\ composite_text.collected_text | (NOT ( 'ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL' IN TYPEOF(tl))) )) = 0); wr9 : (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL' IN TYPEOF(SELF.item)))) OR (SELF.item\text_literal.alignment IN ['baseline left','baseline centre','baseline right']); wr10: (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( 'ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL' IN TYPEOF(text)) ) | (NOT (tl\text_literal.alignment IN ['baseline left', 'baseline centre','baseline right'])) )) = 0); wr11: NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL' IN TYPEOF(SELF.item)) AND EXISTS(SELF.item\text_literal. placement.ref_direction)); wr12: (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( 'ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL' IN TYPEOF(text)) ) | EXISTS(tl\text_literal.placement.ref_direction) )) = 0); wr13: (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR check_text_alignment(SELF.item); wr14: (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR check_text_font(SELF.item); wr15: (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY ( tl <* QUERY ( text <* SELF.item\composite_text.collected_text | ( 'ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL' IN TYPEOF(text)) ) | (NOT (SIZEOF(TYPEOF(tl) * ['ASSOCIATIVE_DRAUGHTING.' + 'TEXT_LITERAL_WITH_BLANKING_BOX','ASSOCIATIVE_DRAUGHTING.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0)) )) = 0); wr16: (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.TEXT_LITERAL_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY ( crv <* SELF.item \text_literal_with_associated_curves.associated_curves | ( NOT (SIZEOF(QUERY ( si <* USEDIN(crv, 'ASSOCIATIVE_DRAUGHTING.' + 'STYLED_ITEM.ITEM') | ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)) )) > 0)) )) = 0); wr17: (NOT (('ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('ASSOCIATIVE_DRAUGHTING.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY ( crv <* SELF.item \composite_text_with_associated_curves.associated_curves | (NOT (SIZEOF(QUERY ( si <* USEDIN(crv, 'ASSOCIATIVE_DRAUGHTING.' + 'STYLED_ITEM.ITEM') | ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)) )) > 0)) )) = 0); wr18: SIZEOF(QUERY ( cs <* QUERY ( sty <* SELF.styles | ( 'ASSOCIATIVE_DRAUGHTING.CURVE_STYLE' IN TYPEOF(sty.styles[1])) ) | (NOT (('ASSOCIATIVE_DRAUGHTING.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(cs.styles[1]\curve_style.curve_width)) AND ( 'ASSOCIATIVE_DRAUGHTING.POSITIVE_LENGTH_MEASURE' IN TYPEOF( cs.styles[1]\curve_style.curve_width\measure_with_unit. value_component)))) )) = 0; wr19: SIZEOF(QUERY ( fas <* QUERY ( sty <* SELF.styles | ( 'ASSOCIATIVE_DRAUGHTING.FILL_AREA_STYLE' IN TYPEOF(sty. styles[1])) ) | (NOT ((SIZEOF(QUERY ( fs <* fas.styles[1]\ fill_area_style.fill_styles | ( 'ASSOCIATIVE_DRAUGHTING.FILL_AREA_STYLE_TILES' IN TYPEOF(fs)) )) <= 1) AND (SIZEOF(QUERY ( fst <* QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | ( 'ASSOCIATIVE_DRAUGHTING.FILL_AREA_STYLE_TILES' IN TYPEOF(fs)) ) | (NOT (SIZEOF(fst\fill_area_style_tiles.tiles) = 1)) )) = 0))) )) = 0; wr20: SIZEOF(QUERY ( fas <* QUERY ( sty <* SELF.styles | ( 'ASSOCIATIVE_DRAUGHTING.FILL_AREA_STYLE' IN TYPEOF(sty. styles[1])) ) | (NOT (SIZEOF(QUERY ( fsh <* QUERY ( fs <* fas.styles[1]\fill_area_style.fill_styles | ( 'ASSOCIATIVE_DRAUGHTING.FILL_AREA_STYLE_HATCHING' IN TYPEOF(fs)) ) | (NOT (fsh\fill_area_style_hatching. point_of_reference_hatch_line :=: fsh\ fill_area_style_hatching.pattern_start)) )) = 0)) )) = 0; wr21: SIZEOF(QUERY ( ts <* QUERY ( sty <* SELF.styles | ( 'ASSOCIATIVE_DRAUGHTING.TEXT_STYLE' IN TYPEOF(sty.styles[1])) ) | (NOT ('ASSOCIATIVE_DRAUGHTING.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(ts.styles[1]))) )) = 0; wr22: SIZEOF(QUERY ( ts <* QUERY ( sty <* SELF.styles | ('ASSOCIATIVE_DRAUGHTING.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(sty.styles[1])) ) | (NOT (SIZEOF(ts.styles[1]\ text_style_with_box_characteristics.characteristics) = 4)) )) = 0; END_ENTITY; -- draughting_annotation_occurrence ENTITY draughting_approval_assignment SUBTYPE OF (approval_assignment); approved_items : SET [1:?] OF approved_item; WHERE wr1: SIZEOF(QUERY ( item <* approved_items | ( 'ASSOCIATIVE_DRAUGHTING.DRAWING_REVISION' IN TYPEOF(item)) )) <= 1; END_ENTITY; -- draughting_approval_assignment ENTITY draughting_callout SUBTYPE OF (geometric_representation_item); contents : SET [1:?] OF draughting_callout_element; END_ENTITY; -- draughting_callout ENTITY draughting_callout_relationship; name : label; description : text; relating_draughting_callout : draughting_callout; related_draughting_callout : draughting_callout; END_ENTITY; -- draughting_callout_relationship ENTITY draughting_contract_assignment SUBTYPE OF (contract_assignment); items : SET [1:?] OF contracted_item; END_ENTITY; -- draughting_contract_assignment ENTITY draughting_drawing_revision SUBTYPE OF (drawing_revision); WHERE wr1 : (SIZEOF(USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET')) >= 1) AND ( SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( 'ASSOCIATIVE_DRAUGHTING.DRAWING_SHEET_REVISION' IN TYPEOF( ais.area))) )) = 0); wr2 : SIZEOF(QUERY ( app_ass <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS') | (NOT ( SIZEOF(USEDIN(app_ass.assigned_approval, 'ASSOCIATIVE_DRAUGHTING.' + 'APPROVAL_DATE_TIME.DATED_APPROVAL')) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( app_ass <* USEDIN(ais.area, 'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS') | (NOT ( SIZEOF(USEDIN(app_ass.assigned_approval, 'ASSOCIATIVE_DRAUGHTING.' + 'APPROVAL_DATE_TIME.DATED_APPROVAL')) = 1)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( app_ass <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS') | (NOT ( SIZEOF(USEDIN(app_ass.assigned_approval, 'ASSOCIATIVE_DRAUGHTING.' + 'APPROVAL_PERSON_ORGANIZATION.AUTHORIZED_APPROVAL')) >= 1)) )) = 0; wr5 : SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( app_ass <* USEDIN(ais.area, 'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS') | (NOT ( SIZEOF(USEDIN(app_ass.assigned_approval, 'ASSOCIATIVE_DRAUGHTING.' + 'APPROVAL_PERSON_ORGANIZATION.AUTHORIZED_APPROVAL')) >= 1)) )) = 0)) )) = 0; wr6 : SIZEOF(USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_TITLE.ITEMS')) <= 1; wr7 : SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(USEDIN(ais.area,'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_TITLE.ITEMS')) <= 1)) )) = 0; wr8 : SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( item <* ais.area.items | (NOT (SIZEOF( TYPEOF(item) * ['ASSOCIATIVE_DRAUGHTING.STYLED_ITEM', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT', 'ASSOCIATIVE_DRAUGHTING.PLANAR_BOX']) = 1)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( item <* ais.area.items | (SIZEOF(TYPEOF(item) * ['ASSOCIATIVE_DRAUGHTING.STYLED_ITEM', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM']) = 1) )) > 0)) )) = 0; wr10: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( p_b <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.PLANAR_BOX' IN TYPEOF(item)) ) | ( NOT (SIZEOF(USEDIN(p_b,'ASSOCIATIVE_DRAUGHTING.' + 'PRESENTATION_SIZE.SIZE')) = 1)) )) = 0)) )) = 0; wr11: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( mi <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | ( NOT ('ASSOCIATIVE_DRAUGHTING.PRESENTATION_VIEW' IN TYPEOF( mi.mapping_source.mapped_representation))) )) = 0)) )) = 0; wr12: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( a2p <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT' IN TYPEOF(item)) ) | (NOT (SIZEOF(USEDIN(a2p,'ASSOCIATIVE_DRAUGHTING.' + 'MAPPED_ITEM.MAPPING_TARGET')) > 0)) )) = 0)) )) = 0; wr13: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(ais.area.context_of_items.representations_in_context) = 1)) )) = 0; wr14: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( mi <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | ( NOT (SIZEOF(USEDIN(mi.mapping_source.mapped_representation, 'ASSOCIATIVE_DRAUGHTING.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')) = 1)) )) = 0)) )) = 0; wr15: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( mi <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | ( NOT (SIZEOF(QUERY ( pv_item <* mi.mapping_source. mapped_representation.items | (NOT (SIZEOF(TYPEOF(pv_item) * ['ASSOCIATIVE_DRAUGHTING.' + 'STYLED_ITEM', 'ASSOCIATIVE_DRAUGHTING.CAMERA_IMAGE', 'ASSOCIATIVE_DRAUGHTING.' + 'AXIS2_PLACEMENT']) = 1)) )) = 0)) )) = 0)) )) = 0; wr16: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( mi <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | ( NOT (SIZEOF(QUERY ( pv_item <* mi.mapping_source. mapped_representation.items | ( 'ASSOCIATIVE_DRAUGHTING.CAMERA_IMAGE' IN TYPEOF(pv_item)) )) = 1)) )) = 0)) )) = 0; wr17: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( mi <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | ( NOT (SIZEOF(QUERY ( a2p <* QUERY ( pv_item <* mi. mapping_source.mapped_representation.items | ( 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT' IN TYPEOF(pv_item)) ) | (('ASSOCIATIVE_DRAUGHTING.' + 'MAPPING_SOURCE.MAPPING_ORIGIN') IN ROLESOF(a2p)) )) = 1)) )) = 0)) )) = 0; wr18: SIZEOF(QUERY ( ais <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.AREA_IN_SET.IN_SET') | (NOT ( SIZEOF(QUERY ( mi <* QUERY ( item <* ais.area.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | ( NOT (SIZEOF(mi.mapping_source.mapped_representation. context_of_items.representations_in_context) = 1)) )) = 0)) )) = 0; END_ENTITY; -- draughting_drawing_revision ENTITY draughting_elements SUBTYPE OF (draughting_callout); WHERE wr1: SIZEOF(QUERY ( l_c <* QUERY ( con <* SELF.contents | ( 'ASSOCIATIVE_DRAUGHTING.LEADER_CURVE' IN TYPEOF(con)) ) | ( NOT (SIZEOF(QUERY ( ldc <* USEDIN(l_c, 'ASSOCIATIVE_DRAUGHTING.' + 'DRAUGHTING_CALLOUT.CONTENTS') | ('ASSOCIATIVE_DRAUGHTING.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc)) )) <= 1)) )) = 0; wr2: (NOT ('ASSOCIATIVE_DRAUGHTING.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF))) OR (SIZEOF(QUERY ( con <* SELF.contents | ('ASSOCIATIVE_DRAUGHTING.PROJECTION_CURVE' IN TYPEOF(con)) )) <= 2); wr3: SIZEOF(QUERY ( rc <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | (rc.name = 'primary') )) <= 1; wr4: SIZEOF(QUERY ( rc <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | (rc.name = 'secondary') )) <= 1; wr5: SIZEOF(QUERY ( sec <* QUERY ( rc <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | (rc.name = 'secondary') ) | (NOT (SIZEOF(QUERY ( prim <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.DIMENSION_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | (prim.name = 'primary') )) = 1)) )) = 0; END_ENTITY; -- draughting_elements ENTITY draughting_group_elements_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF draughting_group_element; END_ENTITY; -- draughting_group_elements_assignment ENTITY draughting_model SUBTYPE OF (representation); UNIQUE ur1 : name; WHERE wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.STYLED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT'] * TYPEOF(it)) = 1)) )) = 0; wr2: SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT (SIZEOF(['ASSOCIATIVE_DRAUGHTING.SHAPE_REPRESENTATION', 'ASSOCIATIVE_DRAUGHTING.DRAUGHTING_MODEL'] * TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)) = 1)) )) = 0; wr3: SIZEOF(QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ('ASSOCIATIVE_DRAUGHTING.STYLED_ITEM' IN TYPEOF(it)) ) | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(si\ styled_item.item)) ) | (NOT (( 'ASSOCIATIVE_DRAUGHTING.SHAPE_REPRESENTATION' IN TYPEOF(smi\ styled_item.item\mapped_item.mapping_source. mapped_representation)) AND (SIZEOF(QUERY ( sty <* smi\ styled_item.styles | (NOT (SIZEOF(QUERY ( psa <* sty.styles | (NOT ('ASSOCIATIVE_DRAUGHTING.CURVE_STYLE' IN TYPEOF(psa))) )) = 1)) )) = 1)) ))) = 0; END_ENTITY; -- draughting_model ENTITY draughting_organization_assignment SUBTYPE OF (organization_assignment); assigned_items : SET [1:?] OF draughting_organization_item; END_ENTITY; -- draughting_organization_assignment ENTITY draughting_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); assigned_items : SET [1:?] OF draughting_organization_item; END_ENTITY; -- draughting_person_and_organization_assignment ENTITY draughting_person_assignment SUBTYPE OF (person_assignment); assigned_items : SET [1:?] OF draughting_organization_item; END_ENTITY; -- draughting_person_assignment ENTITY draughting_pre_defined_colour SUBTYPE OF (pre_defined_colour); WHERE wr1: SELF.name IN ['black','red','green','blue','yellow','magenta', 'cyan','white']; END_ENTITY; -- draughting_pre_defined_colour ENTITY draughting_pre_defined_curve_font SUBTYPE OF (pre_defined_curve_font); WHERE wr1: SELF.name IN ['continuous','chain','chain double dash','dashed', 'dotted']; END_ENTITY; -- draughting_pre_defined_curve_font ENTITY draughting_pre_defined_text_font SUBTYPE OF (pre_defined_text_font); WHERE wr1: SELF.name IN ['ISO 3098-1 font A','ISO 3098-1 font B']; END_ENTITY; -- draughting_pre_defined_text_font ENTITY draughting_presented_item SUBTYPE OF (presented_item); items : SET [1:?] OF draughting_presented_item_select; WHERE wr1: SIZEOF(QUERY ( pir <* USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'PRESENTED_ITEM_REPRESENTATION.ITEM') | (NOT ( 'ASSOCIATIVE_DRAUGHTING.DRAWING_REVISION' IN TYPEOF(pir. presentation))) )) = 0; END_ENTITY; -- draughting_presented_item ENTITY draughting_security_classification_assignment SUBTYPE OF (security_classification_assignment); assigned_items : SET [1:?] OF classified_item; END_ENTITY; -- draughting_security_classification_assignment ENTITY draughting_specification_reference SUBTYPE OF (document_reference); specified_items : SET [1:?] OF specified_item; WHERE wr1: SELF.assigned_document.kind.product_data_type = 'draughting specification'; END_ENTITY; -- draughting_specification_reference ENTITY draughting_subfigure_representation SUBTYPE OF (symbol_representation); WHERE wr1: SIZEOF(QUERY ( item <* SELF\representation.items | (NOT ( SIZEOF(['ASSOCIATIVE_DRAUGHTING.ANNOTATION_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.DRAUGHTING_CALLOUT', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT'] * TYPEOF(item)) = 1)) )) = 0; wr2: SIZEOF(QUERY ( item <* SELF\representation.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.DRAUGHTING_CALLOUT'] * TYPEOF(item)) = 1) )) >= 1; wr3: SIZEOF(QUERY ( srm <* QUERY ( rm <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | ( 'ASSOCIATIVE_DRAUGHTING.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) ) | (NOT (SIZEOF(QUERY ( a_s <* QUERY ( mi <* srm.map_usage | ('ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL' IN TYPEOF(mi)) ) | (NOT (SIZEOF(QUERY ( aso <* USEDIN(a_s, 'ASSOCIATIVE_DRAUGHTING.STYLED_ITEM.ITEM') | (NOT ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso))) )) = 0)) )) = 0)) )) > 0; wr4: NOT acyclic_mapped_item_usage(SELF); wr5: SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; -- draughting_subfigure_representation ENTITY draughting_symbol_representation SUBTYPE OF (symbol_representation); UNIQUE ur1 : name; WHERE wr1: SIZEOF(QUERY ( item <* SELF\representation.items | (NOT ( SIZEOF(TYPEOF(item) * [ 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_CURVE_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_FILL_AREA_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT']) = 1)) )) = 0; wr2: SIZEOF(QUERY ( item <* SELF\representation.items | (SIZEOF( TYPEOF(item) * [ 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_CURVE_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_FILL_AREA_OCCURRENCE', 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_TEXT_OCCURRENCE']) = 1) )) >= 1; wr3: SIZEOF(QUERY ( item <* SELF\representation.items | ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item)) )) = 0; wr4: SIZEOF(QUERY ( srm <* QUERY ( rm <* USEDIN(SELF, 'ASSOCIATIVE_DRAUGHTING.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | ( 'ASSOCIATIVE_DRAUGHTING.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) ) | (NOT (SIZEOF(QUERY ( a_s <* QUERY ( mi <* srm.map_usage | ('ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL' IN TYPEOF(mi)) ) | (NOT (SIZEOF(QUERY ( aso <* USEDIN(a_s, 'ASSOCIATIVE_DRAUGHTING.STYLED_ITEM.ITEM') | (NOT ( 'ASSOCIATIVE_DRAUGHTING.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(aso))) )) = 0)) )) = 0)) )) > 0; wr5: NOT acyclic_mapped_item_usage(SELF); wr6: SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; -- draughting_symbol_representation ENTITY draughting_text_literal_with_delineation SUBTYPE OF (text_literal_with_delineation); WHERE wr1: SELF.delineation IN ['underline','overline']; END_ENTITY; -- draughting_text_literal_with_delineation ENTITY draughting_title; items : SET [1:?] OF draughting_titled_item; language : label; contents : text; END_ENTITY; -- draughting_title ENTITY drawing_definition; drawing_number : identifier; drawing_type : OPTIONAL label; END_ENTITY; -- drawing_definition ENTITY drawing_revision SUBTYPE OF (presentation_set); revision_identifier : identifier; drawing_identifier : drawing_definition; intended_scale : OPTIONAL text; UNIQUE ur1 : revision_identifier, drawing_identifier; END_ENTITY; -- drawing_revision ENTITY drawing_sheet_layout SUBTYPE OF (draughting_symbol_representation); END_ENTITY; -- drawing_sheet_layout ENTITY drawing_sheet_revision SUBTYPE OF (presentation_area); revision_identifier : identifier; WHERE wr1: SIZEOF(QUERY ( item <* SELF\representation.items | (( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) AND ( 'ASSOCIATIVE_DRAUGHTING.DRAWING_SHEET_REVISION' IN TYPEOF( item\mapped_item.mapping_source.mapped_representation))) )) = 0; END_ENTITY; -- drawing_sheet_revision ENTITY drawing_sheet_revision_usage SUBTYPE OF (area_in_set); sheet_number : identifier; UNIQUE ur1 : sheet_number, in_set; WHERE wr1: ('ASSOCIATIVE_DRAUGHTING.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\area_in_set.area)) AND ('ASSOCIATIVE_DRAUGHTING.DRAWING_REVISION' IN TYPEOF(SELF\ area_in_set.in_set)); END_ENTITY; -- drawing_sheet_revision_usage ENTITY edge SUPERTYPE OF (ONEOF (edge_curve,oriented_edge)) SUBTYPE OF (topological_representation_item); edge_start : vertex; edge_end : vertex; END_ENTITY; -- edge ENTITY edge_based_2d_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY ( it <* SELF\representation.items | (NOT (SIZEOF( ['ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_2D'] * TYPEOF(it)) = 1)) )) = 0; wr2 : SIZEOF(QUERY ( it <* SELF\representation.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) >= 1; wr3 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT ( 'ASSOCIATIVE_DRAUGHTING.EDGE_CURVE' IN TYPEOF(edges))) )) = 0)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( pline_edges <* QUERY ( edges <* eb.ces_edges | ( 'ASSOCIATIVE_DRAUGHTING.POLYLINE' IN TYPEOF(edges\ edge_curve.edge_geometry)) ) | (NOT (SIZEOF(pline_edges\ edge_curve.edge_geometry\polyline.points) > 2)) )) = 0)) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT (( 'ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(edges. edge_start)) AND ('ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(edges.edge_end)))) )) = 0)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT valid_2d_wireframe_edge_curve(edges\edge_curve. edge_geometry,'ASSOCIATIVE_DRAUGHTING')) )) = 0)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT ( valid_wireframe_vertex_point(edges.edge_start\vertex_point. vertex_geometry,'ASSOCIATIVE_DRAUGHTING') AND valid_wireframe_vertex_point(edges.edge_end\vertex_point. vertex_geometry,'ASSOCIATIVE_DRAUGHTING'))) )) = 0)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( con_edges <* QUERY ( edges <* eb.ces_edges | ( 'ASSOCIATIVE_DRAUGHTING.CONIC' IN TYPEOF(edges\edge_curve. edge_geometry)) ) | (NOT ( 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_2D' IN TYPEOF( con_edges\edge_curve.edge_geometry\conic.position))) )) = 0)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( mi <* QUERY ( it <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | (NOT (('ASSOCIATIVE_DRAUGHTING.' + 'EDGE_BASED_2D_WIREFRAME_SHAPE_REPRESENTATION') IN TYPEOF( mi\mapped_item.mapping_source.mapped_representation))) )) = 0; wr10: SELF\representation.context_of_items\ geometric_representation_context.coordinate_space_dimension = 2; END_ENTITY; -- edge_based_2d_wireframe_shape_representation ENTITY edge_based_wireframe_model SUBTYPE OF (geometric_representation_item); ebwm_boundary : SET [1:?] OF connected_edge_set; END_ENTITY; -- edge_based_wireframe_model ENTITY edge_based_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0; wr2 : SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) >= 1; wr3 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT ( 'ASSOCIATIVE_DRAUGHTING.EDGE_CURVE' IN TYPEOF(edges))) )) = 0)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( pline_edges <* QUERY ( edges <* eb.ces_edges | ( 'ASSOCIATIVE_DRAUGHTING.POLYLINE' IN TYPEOF(edges\ edge_curve.edge_geometry)) ) | (NOT (SIZEOF(pline_edges\ edge_curve.edge_geometry\polyline.points) > 2)) )) = 0)) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT (( 'ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(edges. edge_start)) AND ('ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(edges.edge_end)))) )) = 0)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT valid_wireframe_edge_curve(edges\edge_curve.edge_geometry, 'ASSOCIATIVE_DRAUGHTING')) )) = 0)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( edges <* eb.ces_edges | (NOT ( valid_wireframe_vertex_point(edges.edge_start\vertex_point. vertex_geometry,'ASSOCIATIVE_DRAUGHTING') AND valid_wireframe_vertex_point(edges.edge_end\vertex_point. vertex_geometry,'ASSOCIATIVE_DRAUGHTING'))) )) = 0)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\ edge_based_wireframe_model.ebwm_boundary | (NOT (SIZEOF( QUERY ( con_edges <* QUERY ( edges <* eb.ces_edges | ( 'ASSOCIATIVE_DRAUGHTING.CONIC' IN TYPEOF(edges\edge_curve. edge_geometry)) ) | (NOT ( 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D' IN TYPEOF( con_edges\edge_curve.edge_geometry\conic.position))) )) = 0)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT (('ASSOCIATIVE_DRAUGHTING.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION') IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation))) )) = 0; wr10: SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 3; END_ENTITY; -- edge_based_wireframe_shape_representation ENTITY edge_curve SUBTYPE OF (edge, geometric_representation_item); edge_geometry : curve; same_sense : BOOLEAN; END_ENTITY; -- edge_curve ENTITY edge_loop SUBTYPE OF (loop, path); DERIVE ne : INTEGER := SIZEOF(SELF\path.edge_list); WHERE wr1: SELF\path.edge_list[1].edge_start :=: SELF\path.edge_list[ne]. edge_end; END_ENTITY; -- edge_loop ENTITY elementary_2d_geometric_curve_set_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SELF\representation.context_of_items\ geometric_representation_context.coordinate_space_dimension = 2; wr2: SIZEOF(QUERY ( item <* SELF\representation.items | (NOT ( SIZEOF(['ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_2D'] * TYPEOF(item)) = 1)) )) = 0; wr3: SIZEOF(QUERY ( item <* SELF\representation.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(item)) = 1) )) >= 1; wr4: SIZEOF(QUERY ( mi <* QUERY ( item <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | (NOT (('ASSOCIATIVE_DRAUGHTING.' + 'ELEMENTARY_2D_GEOMETRIC_CURVE_SET_SHAPE_REPRESENTATION') IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) )) = 0; wr5: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF( item)) ) | (NOT (SIZEOF(QUERY ( elem <* gcs\geometric_set. elements | (NOT (SIZEOF(TYPEOF(elem) * [ 'ASSOCIATIVE_DRAUGHTING.CIRCLE', 'ASSOCIATIVE_DRAUGHTING.COMPOSITE_CURVE', 'ASSOCIATIVE_DRAUGHTING.ELLIPSE', 'ASSOCIATIVE_DRAUGHTING.POINT', 'ASSOCIATIVE_DRAUGHTING.POLYLINE', 'ASSOCIATIVE_DRAUGHTING.TRIMMED_CURVE']) = 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF( item)) ) | (NOT (SIZEOF(QUERY ( tc <* QUERY ( elem <* gcs\ geometric_set.elements | ( 'ASSOCIATIVE_DRAUGHTING.TRIMMED_CURVE' IN TYPEOF(elem)) ) | (NOT valid_elementary_trimmed_curves_in_set(tc\trimmed_curve .basis_curve,'ASSOCIATIVE_DRAUGHTING')) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF( item)) ) | (NOT (SIZEOF(QUERY ( pnt <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.POINT' IN TYPEOF(elem)) ) | (NOT (SIZEOF(TYPEOF(pnt) * [ 'ASSOCIATIVE_DRAUGHTING.CARTESIAN_POINT', 'ASSOCIATIVE_DRAUGHTING.POINT_ON_CURVE']) = 1)) )) = 0)) )) = 0; wr8: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF\representation.items | ('ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF( item)) ) | (NOT (SIZEOF(QUERY ( pl <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.POLYLINE' IN TYPEOF(elem)) ) | (NOT (SIZEOF(pl\polyline.points) > 2)) )) = 0)) )) = 0; END_ENTITY; -- elementary_2d_geometric_curve_set_shape_representation ENTITY elementary_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP', 'ASSOCIATIVE_DRAUGHTING.FACETED_BREP', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0; wr2 : SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) > 0; wr3 : SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh. cfs_faces | (NOT ('ASSOCIATIVE_DRAUGHTING.FACE_SURFACE' IN TYPEOF(fcs))) )) = 0)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh\ connected_face_set.cfs_faces | (NOT ( 'ASSOCIATIVE_DRAUGHTING.ELEMENTARY_SURFACE' IN TYPEOF(fcs\ face_surface.face_geometry))) )) = 0)) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh\ connected_face_set.cfs_faces | (NOT (SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (NOT ('ASSOCIATIVE_DRAUGHTING.EDGE_CURVE' IN TYPEOF(oe.edge_element))) )) = 0)) )) = 0)) )) = 0)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh\ connected_face_set.cfs_faces | (NOT (SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (NOT (SIZEOF(['ASSOCIATIVE_DRAUGHTING.LINE', 'ASSOCIATIVE_DRAUGHTING.CONIC', 'ASSOCIATIVE_DRAUGHTING.POLYLINE'] * TYPEOF(oe.edge_element \edge_curve.edge_geometry)) = 1)) )) = 0)) )) = 0)) )) = 0)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh\ connected_face_set.cfs_faces | (NOT (SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (NOT (('ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(oe.edge_start)) AND ( 'ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF(oe.edge_end)))) )) = 0)) )) = 0)) )) = 0)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh\ connected_face_set.cfs_faces | (NOT (SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | ('ASSOCIATIVE_DRAUGHTING.ORIENTED_PATH' IN TYPEOF( elp_fbnds.bound)) )) = 0)) )) = 0)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | ('ASSOCIATIVE_DRAUGHTING.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer)) )) = 0; wr10: SIZEOF(QUERY ( brv <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.BREP_WITH_VOIDS' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* brv\brep_with_voids.voids | csh\oriented_closed_shell.orientation )) = 0)) )) = 0; wr11: SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT ('ASSOCIATIVE_DRAUGHTING.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation))) )) = 0; wr12: SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh\ connected_face_set.cfs_faces | (NOT (SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'ASSOCIATIVE_DRAUGHTING.VERTEX_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (('ASSOCIATIVE_DRAUGHTING.VERTEX_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ( 'ASSOCIATIVE_DRAUGHTING.CARTESIAN_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\ vertex_point.vertex_geometry)))) )) = 0)) )) = 0)) )) = 0)) )) = 0; END_ENTITY; -- elementary_brep_shape_representation ENTITY elementary_surface SUPERTYPE OF (ONEOF (plane,cylindrical_surface,conical_surface, spherical_surface,toroidal_surface)) SUBTYPE OF (surface); position : axis2_placement_3d; END_ENTITY; -- elementary_surface ENTITY ellipse SUBTYPE OF (conic); semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; END_ENTITY; -- ellipse ENTITY evaluated_degenerate_pcurve SUBTYPE OF (degenerate_pcurve); equivalent_point : cartesian_point; END_ENTITY; -- evaluated_degenerate_pcurve ENTITY external_source; source_id : source_item; END_ENTITY; -- external_source ENTITY externally_defined_curve_font SUBTYPE OF (externally_defined_item); END_ENTITY; -- externally_defined_curve_font ENTITY externally_defined_hatch_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; -- externally_defined_hatch_style ENTITY externally_defined_item; item_id : source_item; source : external_source; END_ENTITY; -- externally_defined_item ENTITY externally_defined_symbol SUBTYPE OF (externally_defined_item); END_ENTITY; -- externally_defined_symbol ENTITY externally_defined_text_font SUBTYPE OF (externally_defined_item); END_ENTITY; -- externally_defined_text_font ENTITY externally_defined_tile_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; -- externally_defined_tile_style ENTITY face SUPERTYPE OF (ONEOF (face_surface,oriented_face)) SUBTYPE OF (topological_representation_item); bounds : SET [1:?] OF face_bound; WHERE wr1: NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF))); wr2: SIZEOF(QUERY ( temp <* bounds | ( 'ASSOCIATIVE_DRAUGHTING.FACE_OUTER_BOUND' IN TYPEOF(temp)) )) <= 1; END_ENTITY; -- face ENTITY face_bound SUBTYPE OF (topological_representation_item); bound : loop; orientation : BOOLEAN; END_ENTITY; -- face_bound ENTITY face_outer_bound SUBTYPE OF (face_bound); END_ENTITY; -- face_outer_bound ENTITY face_surface SUBTYPE OF (face, geometric_representation_item); face_geometry : surface; same_sense : BOOLEAN; END_ENTITY; -- face_surface ENTITY faceted_brep SUBTYPE OF (manifold_solid_brep); END_ENTITY; -- faceted_brep ENTITY faceted_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.FACETED_BREP', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0; wr2: SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.FACETED_BREP', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) > 0; wr3: SIZEOF(QUERY ( fbrep <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.FACETED_BREP' IN TYPEOF(it)) ) | ( NOT (SIZEOF(QUERY ( csh <* msb_shells(fbrep, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh. cfs_faces | (NOT (('ASSOCIATIVE_DRAUGHTING.FACE_SURFACE' IN TYPEOF(fcs)) AND ('ASSOCIATIVE_DRAUGHTING.PLANE' IN TYPEOF( fcs\face_surface.face_geometry)) AND ( 'ASSOCIATIVE_DRAUGHTING.CARTESIAN_POINT' IN TYPEOF(fcs\ face_surface.face_geometry\elementary_surface.position. location)))) )) = 0)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( fbrep <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.FACETED_BREP' IN TYPEOF(it)) ) | ( NOT (SIZEOF(QUERY ( csh <* msb_shells(fbrep, 'ASSOCIATIVE_DRAUGHTING') | (NOT (SIZEOF(QUERY ( fcs <* csh. cfs_faces | (NOT (SIZEOF(QUERY ( bnds <* fcs.bounds | ( 'ASSOCIATIVE_DRAUGHTING.FACE_OUTER_BOUND' IN TYPEOF(bnds)) )) = 1)) )) = 0)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | ('ASSOCIATIVE_DRAUGHTING.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer)) )) = 0; wr6: SIZEOF(QUERY ( brv <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.BREP_WITH_VOIDS' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* brv\brep_with_voids.voids | csh\ oriented_closed_shell.orientation )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT ( 'ASSOCIATIVE_DRAUGHTING.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation))) )) = 0; END_ENTITY; -- faceted_brep_shape_representation ENTITY fill_area_style; name : label; fill_styles : SET [1:?] OF fill_style_select; WHERE wr1: SIZEOF(QUERY ( fill_style <* SELF.fill_styles | (( 'ASSOCIATIVE_DRAUGHTING.' + 'FILL_AREA_STYLE_COLOUR') IN TYPEOF(fill_style)) )) <= 1; END_ENTITY; -- fill_area_style ENTITY fill_area_style_colour; name : label; fill_colour : colour; END_ENTITY; -- fill_area_style_colour ENTITY fill_area_style_hatching SUBTYPE OF (geometric_representation_item); hatch_line_appearance : curve_style; start_of_next_hatch_line : one_direction_repeat_factor; point_of_reference_hatch_line : cartesian_point; pattern_start : cartesian_point; hatch_line_angle : plane_angle_measure; END_ENTITY; -- fill_area_style_hatching ENTITY fill_area_style_tile_symbol_with_style SUBTYPE OF (geometric_representation_item); symbol : annotation_symbol_occurrence; END_ENTITY; -- fill_area_style_tile_symbol_with_style ENTITY fill_area_style_tiles SUBTYPE OF (geometric_representation_item); tiling_pattern : two_direction_repeat_factor; tiles : SET [1:?] OF fill_area_style_tile_shape_select; tiling_scale : positive_ratio_measure; END_ENTITY; -- fill_area_style_tiles ENTITY functionally_defined_transformation; name : label; description : text; END_ENTITY; -- functionally_defined_transformation ENTITY geometric_curve_set SUBTYPE OF (geometric_set); WHERE wr1: SIZEOF(QUERY ( temp <* SELF\geometric_set.elements | ( 'ASSOCIATIVE_DRAUGHTING.SURFACE' IN TYPEOF(temp)) )) = 0; END_ENTITY; -- geometric_curve_set ENTITY geometric_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; -- geometric_representation_context ENTITY geometric_representation_item SUPERTYPE OF (ONEOF (point,direction,vector,placement, cartesian_transformation_operator,curve,surface,edge_curve, face_surface,poly_loop,vertex_point,solid_model, shell_based_surface_model,shell_based_wireframe_model, edge_based_wireframe_model,geometric_set)) SUBTYPE OF (representation_item); DERIVE dim : dimension_count := dimension_of(SELF); WHERE wr1: SIZEOF(QUERY ( using_rep <* using_representations(SELF) | (NOT ('ASSOCIATIVE_DRAUGHTING.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items))) )) = 0; END_ENTITY; -- geometric_representation_item ENTITY geometric_set SUPERTYPE OF (geometric_curve_set) SUBTYPE OF (geometric_representation_item); elements : SET [1:?] OF geometric_set_select; END_ENTITY; -- geometric_set ENTITY geometrical_tolerance_callout SUBTYPE OF (draughting_callout); END_ENTITY; -- geometrical_tolerance_callout ENTITY geometrically_bounded_2d_wireframe_representation SUBTYPE OF (shape_representation); WHERE wr1: SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 2; wr2: SIZEOF(QUERY ( item <* SELF.items | (NOT (SIZEOF(TYPEOF(item) * ['ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_2D', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM']) = 1)) )) = 0; wr3: SIZEOF(QUERY ( item <* SELF.items | (SIZEOF(TYPEOF(item) * [ 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM']) = 1) )) >= 1; wr4: SIZEOF(QUERY ( mi <* QUERY ( item <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(item)) ) | ( NOT (('ASSOCIATIVE_DRAUGHTING.' + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION') IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) )) = 0; wr5: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) ) | (NOT (SIZEOF(QUERY ( elem <* gcs\geometric_set.elements | (NOT (SIZEOF(TYPEOF(elem) * [ 'ASSOCIATIVE_DRAUGHTING.B_SPLINE_CURVE', 'ASSOCIATIVE_DRAUGHTING.CIRCLE', 'ASSOCIATIVE_DRAUGHTING.COMPOSITE_CURVE', 'ASSOCIATIVE_DRAUGHTING.ELLIPSE', 'ASSOCIATIVE_DRAUGHTING.OFFSET_CURVE_2D', 'ASSOCIATIVE_DRAUGHTING.POINT', 'ASSOCIATIVE_DRAUGHTING.POLYLINE', 'ASSOCIATIVE_DRAUGHTING.TRIMMED_CURVE']) = 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) ) | (NOT (SIZEOF(QUERY ( crv <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.CURVE' IN TYPEOF(elem)) ) | (NOT valid_basis_curve_in_2d_wireframe(crv, 'ASSOCIATIVE_DRAUGHTING')) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) ) | (NOT (SIZEOF(QUERY ( pnt <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.POINT' IN TYPEOF(elem)) ) | (NOT (SIZEOF(TYPEOF(pnt) * [ 'ASSOCIATIVE_DRAUGHTING.CARTESIAN_POINT', 'ASSOCIATIVE_DRAUGHTING.POINT_ON_CURVE']) = 1)) )) = 0)) )) = 0; wr8: SIZEOF(QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) ) | (NOT (SIZEOF(QUERY ( pl <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.POLYLINE' IN TYPEOF(elem)) ) | (NOT (SIZEOF(pl\polyline.points) > 2)) )) = 0)) )) = 0; END_ENTITY; -- geometrically_bounded_2d_wireframe_representation ENTITY geometrically_bounded_surface_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_SET', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0; wr2: SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_SET', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) > 0; wr3: SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT (('ASSOCIATIVE_DRAUGHTING.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION') IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) )) = 0; wr4: SIZEOF(QUERY ( gs <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_SET' IN TYPEOF(it)) ) | ( NOT (SIZEOF(QUERY ( pnt <* QUERY ( gsel <* gs\geometric_set. elements | ('ASSOCIATIVE_DRAUGHTING.POINT' IN TYPEOF(gsel)) ) | (NOT gbsf_check_point(pnt)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( gs <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_SET' IN TYPEOF(it)) ) | ( NOT (SIZEOF(QUERY ( cv <* QUERY ( gsel <* gs\geometric_set. elements | ('ASSOCIATIVE_DRAUGHTING.CURVE' IN TYPEOF(gsel)) ) | (NOT gbsf_check_curve(cv)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( gs <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_SET' IN TYPEOF(it)) ) | ( NOT (SIZEOF(QUERY ( sf <* QUERY ( gsel <* gs\geometric_set. elements | ('ASSOCIATIVE_DRAUGHTING.SURFACE' IN TYPEOF(gsel)) ) | (NOT gbsf_check_surface(sf)) )) = 0)) )) = 0; END_ENTITY; -- geometrically_bounded_surface_shape_representation ENTITY geometrically_bounded_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF(TYPEOF(it) * [ 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM']) = 1)) )) = 0; wr2: SIZEOF(QUERY ( it <* SELF.items | (SIZEOF(TYPEOF(it) * [ 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM']) = 1) )) >= 1; wr3: SIZEOF(QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( crv <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.CURVE' IN TYPEOF(elem)) ) | (NOT valid_geometrically_bounded_wf_curve( crv,'ASSOCIATIVE_DRAUGHTING')) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( pnts <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.POINT' IN TYPEOF(elem)) ) | (NOT valid_geometrically_bounded_wf_point( pnts,'ASSOCIATIVE_DRAUGHTING')) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cnc <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.CONIC' IN TYPEOF(elem)) ) | (NOT ( 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D' IN TYPEOF(cnc\ conic.position))) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.GEOMETRIC_CURVE_SET' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( pline <* QUERY ( elem <* gcs\ geometric_set.elements | ('ASSOCIATIVE_DRAUGHTING.POLYLINE' IN TYPEOF(elem)) ) | (NOT (SIZEOF(pline\polyline.points) > 2)) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT (('ASSOCIATIVE_DRAUGHTING.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION') IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) )) = 0; wr8: SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 3; END_ENTITY; -- geometrically_bounded_wireframe_shape_representation ENTITY global_uncertainty_assigned_context SUBTYPE OF (representation_context); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; -- global_uncertainty_assigned_context ENTITY global_unit_assigned_context SUBTYPE OF (representation_context); units : SET [1:?] OF unit; END_ENTITY; -- global_unit_assigned_context ENTITY group; name : label; description : text; END_ENTITY; -- group ENTITY group_assignment ABSTRACT SUPERTYPE; assigned_group : group; END_ENTITY; -- group_assignment ENTITY group_relationship; name : label; description : text; relating_group : group; related_group : group; END_ENTITY; -- group_relationship ENTITY hyperbola SUBTYPE OF (conic); semi_axis : positive_length_measure; semi_imag_axis : positive_length_measure; END_ENTITY; -- hyperbola ENTITY intersection_curve SUBTYPE OF (surface_curve); WHERE wr1: SIZEOF(SELF\surface_curve.associated_geometry) = 2; wr2: associated_surface(SELF\surface_curve.associated_geometry[1]) <> associated_surface(SELF\surface_curve.associated_geometry [2]); END_ENTITY; -- intersection_curve ENTITY invisibility; invisible_items : SET [1:?] OF invisible_item; END_ENTITY; -- invisibility ENTITY leader_curve SUBTYPE OF (annotation_curve_occurrence); WHERE wr1: SIZEOF(USEDIN(SELF,'ASSOCIATIVE_DRAUGHTING.' + 'LEADER_DIRECTED_CALLOUT.CONTENTS')) >= 1; END_ENTITY; -- leader_curve ENTITY leader_directed_callout SUBTYPE OF (draughting_callout); WHERE wr1: SIZEOF(QUERY ( l_1 <* SELF\draughting_callout.contents | ( 'ASSOCIATIVE_DRAUGHTING.LEADER_CURVE' IN TYPEOF(l_1)) )) >= 1; wr2: SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; -- leader_directed_callout ENTITY leader_directed_dimension SUBTYPE OF (leader_directed_callout); WHERE wr1: SIZEOF(QUERY ( con <* SELF.contents | ( 'ASSOCIATIVE_DRAUGHTING.LEADER_CURVE' IN TYPEOF(con)) )) = 1; END_ENTITY; -- leader_directed_dimension ENTITY leader_terminator SUBTYPE OF (terminator_symbol); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.LEADER_CURVE' IN TYPEOF(SELF\ terminator_symbol.annotated_curve); END_ENTITY; -- leader_terminator ENTITY length_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1: 'ASSOCIATIVE_DRAUGHTING.LENGTH_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- length_measure_with_unit ENTITY length_unit SUBTYPE OF (named_unit); WHERE wr1: (SELF\named_unit.dimensions.length_exponent = 1) AND (SELF\ named_unit.dimensions.mass_exponent = 0) AND (SELF\ named_unit.dimensions.time_exponent = 0) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0) AND ( SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0) AND (SELF\named_unit .dimensions.amount_of_substance_exponent = 0) AND (SELF\ named_unit.dimensions.luminous_intensity_exponent = 0); END_ENTITY; -- length_unit ENTITY line SUBTYPE OF (curve); pnt : cartesian_point; dir : vector; WHERE wr1: dir.dim = pnt.dim; END_ENTITY; -- line ENTITY linear_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; -- linear_dimension ENTITY local_time; hour_component : hour_in_day; minute_component : OPTIONAL minute_in_hour; second_component : OPTIONAL second_in_minute; zone : coordinated_universal_time_offset; WHERE wr1: valid_time(SELF); END_ENTITY; -- local_time ENTITY loop SUPERTYPE OF (ONEOF (vertex_loop,edge_loop,poly_loop)) SUBTYPE OF (topological_representation_item); END_ENTITY; -- loop ENTITY manifold_solid_brep SUBTYPE OF (solid_model); outer : closed_shell; END_ENTITY; -- manifold_solid_brep ENTITY manifold_surface_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM', 'ASSOCIATIVE_DRAUGHTING.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0; wr2 : SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL', 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) > 0; wr3 : SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.MAPPED_ITEM' IN TYPEOF(it)) ) | ( NOT ('ASSOCIATIVE_DRAUGHTING.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation))) )) = 0; wr4 : SIZEOF(QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( sh <* sbsm\ shell_based_surface_model.sbsm_boundary | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.OPEN_SHELL', 'ASSOCIATIVE_DRAUGHTING.CLOSED_SHELL'] * TYPEOF(sh)) = 1)) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* sbsm\ shell_based_surface_model.sbsm_boundary | (NOT (SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | (NOT ( SIZEOF(['ASSOCIATIVE_DRAUGHTING.FACE_SURFACE', 'ASSOCIATIVE_DRAUGHTING.ORIENTED_FACE'] * TYPEOF(fa)) = 1)) )) = 0)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* sbsm\ shell_based_surface_model.sbsm_boundary | (NOT (SIZEOF( QUERY ( f_sf <* QUERY ( fa <* cfs\connected_face_set. cfs_faces | ('ASSOCIATIVE_DRAUGHTING.FACE_SURFACE' IN TYPEOF(fa)) ) | (NOT (( 'ASSOCIATIVE_DRAUGHTING.ADVANCED_FACE' IN TYPEOF(f_sf)) OR (SIZEOF(['ASSOCIATIVE_DRAUGHTING.OFFSET_SURFACE', 'ASSOCIATIVE_DRAUGHTING.SURFACE_REPLICA'] * TYPEOF(f_sf\ face_surface.face_geometry)) = 1))) )) = 0)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* sbsm\ shell_based_surface_model.sbsm_boundary | (NOT (SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | (NOT (( 'ASSOCIATIVE_DRAUGHTING.ADVANCED_FACE' IN TYPEOF(fa)) OR basis_surface_check(fa\face_surface.face_geometry))) )) = 0)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* sbsm\ shell_based_surface_model.sbsm_boundary | (NOT (SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | (NOT (( 'ASSOCIATIVE_DRAUGHTING.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY ( bnds <* fa.bounds | (NOT (SIZEOF([ 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP', 'ASSOCIATIVE_DRAUGHTING.VERTEX_LOOP'] * TYPEOF(bnds.bound)) = 1)) )) = 0))) )) = 0)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* sbsm\ shell_based_surface_model.sbsm_boundary | (NOT (SIZEOF( QUERY ( fa <* cfs\connected_face_set.cfs_faces | (NOT (( 'ASSOCIATIVE_DRAUGHTING.ADVANCED_FACE' IN TYPEOF(fa)) OR ( SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'ASSOCIATIVE_DRAUGHTING.EDGE_LOOP' IN TYPEOF(bnds)) ) | ( NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list | (NOT ('ASSOCIATIVE_DRAUGHTING.EDGE_CURVE' IN TYPEOF(oe. edge_element))) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0; wr10: SIZEOF(QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'ASSOCIATIVE_DRAUGHTING.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* sbsm\