(* $Id: wg3n1873_ap203e2.exp,v 1.1 2007/07/11 14:28:49 loffredo Exp $ ISO TC184/SC4/WG3 N1873 - ISO/TS 10303-403 AP203 configuration controlled 3d design of mechanical parts and assemblies - EXPRESS MIM Long form Supersedes ISO TC184/SC4/WG3 N1587 *) SCHEMA Ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies_mim_lf; CONSTANT deprecated_constructed_data_types : SET OF STRING := ['approved_item', 'certified_item', 'change_request_item', 'contracted_item', 'classified_item', 'date_time_item', 'person_organization_item', 'specified_item', 'start_request_item', 'work_item']; deprecated_entity_data_types : SET OF STRING := ['cc_design_approval', 'cc_design_certification', 'cc_design_contract', 'cc_design_date_and_time_assignment', 'cc_design_person_and_organization_assignment', 'cc_design_security_classification', 'cc_design_specification_reference', 'change', 'change_request', 'design_context', 'design_make_from_relationship', 'mechanical_context', 'start_request', 'start_work', 'supplied_part_relationship']; deprecated_interfaced_data_types : SET OF STRING := ['document_with_class', 'ordinal_date', 'product_definition_formation_with_specified_source', 'week_of_year_and_day_date']; dummy_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); dummy_tri : topological_representation_item := representation_item('')|| topological_representation_item(); END_CONSTANT; (* Pruned unused type: action_item_203e2 *) TYPE action_items = SELECT ( configuration_effectivity, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship); END_TYPE; TYPE action_request_item = SELECT ( product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, property_definition); END_TYPE; (* Pruned unused type: action_request_item_203e2 *) TYPE ahead_or_behind = ENUMERATION OF (ahead, exact, behind); END_TYPE; (* Pruned unused type: aliasable_item *) TYPE amount_of_substance_measure = REAL; END_TYPE; TYPE angle_relator = ENUMERATION OF (equal, large, small); END_TYPE; (* Pruned unused type: appearance_representation_identification_item *) (* Pruned unused type: appearance_representation_version_item *) TYPE approval_item = SELECT ( action, alternate_product_relationship, applied_action_assignment, assembly_component_usage_substitute, certification, configuration_effectivity, contract, document_file, executed_action, product, product_definition, product_definition_formation, product_definition_relationship, versioned_action_request); END_TYPE; (* Pruned unused type: approval_item_203e2 *) TYPE approved_item = SELECT (certification, change, change_request, configuration_effectivity, configuration_item, contract, product, security_classification, start_request, start_work); END_TYPE; TYPE area_measure = REAL; END_TYPE; TYPE area_or_view = SELECT (presentation_area, presentation_view); END_TYPE; TYPE attribute_language_item = SELECT ( alternate_product_relationship, application_context, applied_certification_assignment, applied_document_reference, applied_document_usage_constraint_assignment, applied_external_identification_assignment, applied_identification_assignment, applied_organizational_project_assignment, applied_security_classification_assignment, approval, approval_relationship, approval_status, assembly_component_usage_substitute, attribute_value_assignment, certification, certification_type, configuration_design, configuration_item, contract, date_role, date_time_role, descriptive_representation_item, document_relationship, document_usage_role, effectivity, effectivity_relationship, event_occurrence, external_source, general_property, general_property_relationship, geometric_representation_item, geometric_tolerance, identification_role, make_from_usage_option, mapped_item, multi_language_attribute_assignment, object_role, organization_relationship, organization_role, organizational_project, organizational_project_relationship, organizational_project_role, person_and_organization, person_and_organization_role, product, product_category, product_concept, product_concept_relationship, product_definition, product_definition_context, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_shape, product_related_product_category, property_definition, representation, security_classification, security_classification_assignment, shape_aspect, shape_aspect_relationship, shape_representation, time_interval_role, topological_representation_item, uncertainty_measure_with_unit, uncertainty_qualifier); END_TYPE; (* Pruned unused type: attribute_language_item_203e2 *) TYPE attribute_type = SELECT (label, text); END_TYPE; TYPE axis2_placement = SELECT (axis2_placement_2d, axis2_placement_3d); END_TYPE; TYPE b_spline_curve_form = ENUMERATION OF (polyline_form, circular_arc, elliptic_arc, parabolic_arc, hyperbolic_arc, unspecified); END_TYPE; 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; TYPE boolean_operand = SELECT ( solid_model, half_space_solid, csg_primitive, boolean_result); END_TYPE; TYPE boolean_operator = ENUMERATION OF (union, intersection, difference); END_TYPE; TYPE box_characteristic_select = SELECT (box_height, box_width, box_slant_angle, box_rotate_angle); END_TYPE; TYPE box_height = positive_ratio_measure; END_TYPE; TYPE box_rotate_angle = plane_angle_measure; END_TYPE; TYPE box_slant_angle = plane_angle_measure; END_TYPE; TYPE box_width = positive_ratio_measure; END_TYPE; (* Pruned unused type: cc3dpa_groupable_item *) TYPE celsius_temperature_measure = REAL; END_TYPE; TYPE central_or_parallel = ENUMERATION OF (central, parallel); END_TYPE; TYPE certification_item = SELECT ( product_definition_formation_relationship); END_TYPE; (* Pruned unused type: certification_item_203e2 *) TYPE certified_item = SELECT (supplied_part_relationship); END_TYPE; TYPE change_request_item = SELECT (product_definition_formation); END_TYPE; TYPE character_spacing_select = SELECT ( length_measure, ratio_measure, measure_with_unit, descriptive_measure); END_TYPE; TYPE character_style_select = SELECT (character_glyph_style_stroke, character_glyph_style_outline, text_style_for_defined_font); END_TYPE; TYPE characterized_action_definition = SELECT ( action, action_method, action_relationship); END_TYPE; TYPE characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition); END_TYPE; TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship); END_TYPE; TYPE classification_item = SELECT ( action, action_directive, action_method, action_property, action_relationship, action_request_solution, action_request_status, address, alternate_product_relationship, applied_action_assignment, applied_action_request_assignment, applied_approval_assignment, applied_certification_assignment, applied_contract_assignment, applied_date_and_time_assignment, applied_date_assignment, applied_document_reference, applied_document_usage_constraint_assignment, applied_effectivity_assignment, applied_event_occurrence_assignment, applied_external_identification_assignment, applied_identification_assignment, applied_organization_assignment, applied_organizational_project_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval, approval_person_organization, approval_relationship, approval_status, assembly_component_usage_substitute, calendar_date, certification, class, configuration_item, context_dependent_unit, contract, conversion_based_unit, date_and_time, date_and_time_assignment, date_assignment, derived_unit, descriptive_representation_item, directed_action, document_file, document_relationship, effectivity, event_occurrence, executed_action, general_property, general_property_relationship, group, identification_assignment, language, measure_representation_item, measure_with_unit, multi_language_attribute_assignment, named_unit, organization, organization_relationship, organizational_address, organizational_project, organizational_project_relationship, person, person_and_organization_address, product, product_category, product_concept, product_definition, product_definition_context, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, property_definition, property_definition_representation, representation, representation_context, representation_item, security_classification, uncertainty_measure_with_unit, versioned_action_request); END_TYPE; TYPE classified_item = SELECT (assembly_component_usage, product_definition_formation); END_TYPE; (* Pruned unused type: complete_membership_select *) TYPE compound_item_definition = SELECT (list_representation_item, set_representation_item); END_TYPE; TYPE configuration_design_item = SELECT (product_definition, product_definition_formation); END_TYPE; TYPE context_dependent_measure = REAL; END_TYPE; TYPE contract_item = SELECT ( executed_action, product_definition_formation); END_TYPE; (* Pruned unused type: contract_item_203e2 *) TYPE contracted_item = SELECT (product_definition_formation); END_TYPE; TYPE count_measure = NUMBER; END_TYPE; TYPE csg_primitive = SELECT ( sphere, block, right_angular_wedge, torus, right_circular_cone, right_circular_cylinder); END_TYPE; TYPE csg_select = SELECT (boolean_result, csg_primitive); END_TYPE; TYPE curve_font_or_scaled_curve_font_select = SELECT ( curve_style_font_select); END_TYPE; TYPE curve_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; TYPE curve_or_annotation_curve_occurrence = SELECT (curve, annotation_curve_occurrence); END_TYPE; TYPE curve_or_render = SELECT ( curve_style); END_TYPE; TYPE curve_style_font_select = SELECT (curve_style_font, pre_defined_curve_font, externally_defined_curve_font); END_TYPE; TYPE date_and_time_item = SELECT ( action, applied_action_assignment, applied_organization_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval_person_organization, certification, contract, document_file, event_occurrence, executed_action, organizational_project, product_definition, product_definition_formation, product_definition_relationship, security_classification, versioned_action_request); END_TYPE; (* Pruned unused type: date_and_time_item_203e2 *) (* Pruned unused type: date_and_time_item_approval *) TYPE date_item = SELECT ( action, applied_action_assignment, applied_organization_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval_person_organization, certification, contract, document_file, event_occurrence, organizational_project, product_definition, product_definition_formation, product_definition_relationship, security_classification, versioned_action_request); END_TYPE; (* Pruned unused type: date_item_203e2 *) (* Pruned unused type: date_item_approval *) TYPE date_time_item = SELECT (approval_person_organization, certification, change, change_request, contract, product_definition, security_classification, start_request, start_work); END_TYPE; TYPE date_time_or_event_occurrence = SELECT (date_time_select, event_occurrence); END_TYPE; TYPE date_time_select = SELECT (date, date_and_time, local_time); END_TYPE; TYPE day_in_month_number = INTEGER; WHERE WR1: {1 <= SELF <= 31}; END_TYPE; TYPE day_in_week_number = INTEGER; WHERE WR1: { 1 <= SELF <= 7 }; END_TYPE; TYPE day_in_year_number = INTEGER; WHERE WR1: {1 <= SELF <= 366}; END_TYPE; TYPE defined_glyph_select = SELECT (pre_defined_character_glyph, externally_defined_character_glyph); END_TYPE; TYPE defined_symbol_select = SELECT (pre_defined_symbol, externally_defined_symbol); END_TYPE; TYPE derived_property_select = SELECT ( action_property, property_definition); END_TYPE; TYPE description_attribute_select = SELECT ( action_request_solution, application_context, approval_role, configuration_design, context_dependent_shape_representation, date_role, date_time_role, effectivity, external_source, organization_role, person_and_organization, person_and_organization_role, property_definition_representation, representation); END_TYPE; TYPE descriptive_measure = STRING; END_TYPE; TYPE dimension_count = INTEGER; WHERE WR1: SELF > 0; END_TYPE; TYPE dimension_extent_usage = ENUMERATION OF (origin, target); END_TYPE; (* Pruned unused type: dimension_identification_item *) (* Pruned unused type: dimension_tolerance_document_reference_item *) TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; (* Pruned unused type: dimensioning_standard_document_reference_item *) TYPE direction_count_select = SELECT (u_direction_count, v_direction_count); END_TYPE; (* Pruned unused type: dm_aliasable_item *) (* Pruned unused type: dm_approval_item *) (* Pruned unused type: dm_attribute_language_item *) (* Pruned unused type: dm_contract_item *) (* Pruned unused type: dm_date_and_time_item *) (* Pruned unused type: dm_date_item *) (* Pruned unused type: dm_identification_item *) (* Pruned unused type: dm_multi_language_attribute_item *) (* Pruned unused type: dm_organization_item *) (* Pruned unused type: dm_person_and_organization_item *) (* Pruned unused type: dm_security_classification_item *) (* Pruned unused type: document_location_select *) TYPE document_reference_item = SELECT ( action_method, dimensional_size, executed_action, externally_defined_dimension_definition, product, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, shape_aspect, shape_aspect_relationship, versioned_action_request); END_TYPE; (* Pruned unused type: document_reference_item_203e2 *) TYPE draughting_callout_element = SELECT (annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; TYPE effectivity_item = SELECT ( assembly_component_usage_substitute, product, product_definition, product_definition_formation, product_definition_relationship); END_TYPE; (* Pruned unused type: effectivity_item_203e2 *) TYPE electric_current_measure = REAL; END_TYPE; (* Pruned unused type: event_occurrence_date_and_time_item *) (* Pruned unused type: event_occurrence_date_item *) TYPE event_occurrence_item = SELECT ( organizational_project); END_TYPE; (* Pruned unused type: event_occurrence_item_203e2 *) (* Pruned unused type: external_class_name_item *) TYPE external_identification_item = SELECT ( document_file, product_definition); END_TYPE; (* Pruned unused type: external_identification_item_203e2 *) (* Pruned unused type: file_identification_item *) (* Pruned unused type: file_location_select *) (* Pruned unused type: file_version_item *) TYPE fill_area_style_tile_shape_select = SELECT (fill_area_style_tile_curve_with_style, fill_area_style_tile_coloured_region, fill_area_style_tile_symbol_with_style, pre_defined_tile, externally_defined_tile); END_TYPE; 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; TYPE font_select = SELECT (pre_defined_text_font, externally_defined_text_font); END_TYPE; TYPE founded_item_select = SELECT (founded_item, representation_item); END_TYPE; TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; TYPE groupable_item = SELECT ( geometric_representation_item, mapped_item, representation_relationship_with_transformation, shape_aspect, styled_item, topological_representation_item); WHERE WR1: NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GROUP' IN TYPEOF(SELF)); END_TYPE; TYPE hour_in_day = INTEGER; WHERE WR1: { 0 <= SELF < 24 }; END_TYPE; TYPE id_attribute_select = SELECT (action, address, application_context, group, organizational_project, product_category, property_definition, representation, shape_aspect, shape_aspect_relationship); END_TYPE; TYPE identification_item = SELECT ( approval_status, contract, dimensional_size, document_file, draughting_model, general_property, mechanical_design_geometric_presentation_representation, organization, product, product_definition, product_definition_formation, security_classification, security_classification_level, shape_aspect_relationship, shape_representation); END_TYPE; (* Pruned unused type: identification_item_203e2 *) TYPE identifier = STRING; END_TYPE; (* Pruned unused type: idrm_marked_item *) TYPE invisibility_context = SELECT ( presentation_representation, presentation_set); END_TYPE; TYPE invisible_item = SELECT (styled_item, presentation_layer_assignment, representation); END_TYPE; TYPE knot_type = ENUMERATION OF (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified); END_TYPE; TYPE label = STRING; END_TYPE; TYPE layered_item = SELECT (presentation_representation, representation_item); END_TYPE; TYPE length_measure = REAL; END_TYPE; TYPE limit_condition = ENUMERATION OF (maximum_material_condition, least_material_condition, regardless_of_feature_size); END_TYPE; TYPE list_of_reversible_topology_item = LIST [0:?] of reversible_topology_item; END_TYPE; TYPE list_representation_item = LIST [1:?] OF representation_item; END_TYPE; TYPE luminous_intensity_measure = REAL; END_TYPE; TYPE marker_select = SELECT (marker_type, pre_defined_marker); END_TYPE; TYPE marker_type = ENUMERATION OF (dot, x, plus, asterisk, ring, square, triangle); END_TYPE; TYPE mass_measure = REAL; END_TYPE; TYPE measure_value = SELECT (amount_of_substance_measure, area_measure, celsius_temperature_measure, context_dependent_measure, count_measure, descriptive_measure, electric_current_measure, length_measure, luminous_intensity_measure, mass_measure, numeric_measure, parameter_value, plane_angle_measure, positive_length_measure, positive_plane_angle_measure, positive_ratio_measure, ratio_measure, solid_angle_measure, thermodynamic_temperature_measure, time_measure, volume_measure); END_TYPE; TYPE minute_in_hour = INTEGER; WHERE WR1: { 0 <= SELF <= 59 }; END_TYPE; TYPE month_in_year_number = INTEGER; WHERE WR1: { 1 <= SELF <= 12 }; END_TYPE; (* Pruned unused type: mri_aliasable_item *) (* Pruned unused type: mri_approval_item *) (* Pruned unused type: mri_attribute_language_item *) (* Pruned unused type: mri_date_and_time_item *) (* Pruned unused type: mri_date_item *) (* Pruned unused type: mri_identification_item *) (* Pruned unused type: mri_multi_language_attribute_item *) (* Pruned unused type: mri_organization_item *) (* Pruned unused type: mri_person_and_organization_item *) TYPE multi_language_attribute_item = SELECT ( alternate_product_relationship, application_context, applied_certification_assignment, applied_document_reference, applied_document_usage_constraint_assignment, applied_external_identification_assignment, applied_identification_assignment, applied_organizational_project_assignment, approval, approval_relationship, approval_status, assembly_component_usage_substitute, attribute_value_assignment, certification, certification_type, colour, configuration_design, configuration_item, contract, date_role, date_time_role, descriptive_representation_item, document_relationship, document_usage_role, effectivity, effectivity_relationship, event_occurrence, external_source, general_property, general_property_relationship, geometric_representation_item, geometric_tolerance, identification_role, make_from_usage_option, mapped_item, object_role, organization_relationship, organization_role, organizational_project, organizational_project_relationship, organizational_project_role, person_and_organization, person_and_organization_role, product, product_category, product_concept, product_concept_relationship, product_definition, product_definition_context, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_shape, product_related_product_category, property_definition, representation, representation_relationship, security_classification, security_classification_assignment, shape_aspect, shape_aspect_relationship, shape_representation, time_interval_role, topological_representation_item, uncertainty_measure_with_unit); END_TYPE; (* Pruned unused type: multi_language_attribute_item_203e2 *) TYPE name_attribute_select = SELECT ( action_request_solution, address, configuration_design, context_dependent_shape_representation, derived_unit, effectivity, person_and_organization, product_definition, property_definition_representation); END_TYPE; TYPE name_item = SELECT ( assembly_component_usage, external_class_library); END_TYPE; TYPE null_style = ENUMERATION OF (null); END_TYPE; TYPE numeric_measure = NUMBER; END_TYPE; TYPE organization_item = SELECT ( action, alternate_product_relationship, applied_action_assignment, applied_identification_assignment, applied_security_classification_assignment, approval, assembly_component_usage_substitute, certification, configuration_item, contract, document_file, executed_action, general_property, organizational_project, product, product_definition, product_definition_formation, product_definition_formation_relationship, property_definition, security_classification, shape_representation, versioned_action_request); END_TYPE; (* Pruned unused type: organization_item_203e2 *) (* Pruned unused type: organizational_project_item_203e2 *) TYPE parameter_value = REAL; END_TYPE; TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; (* Pruned unused type: pdm_action_items *) (* Pruned unused type: pdm_action_request_item *) (* Pruned unused type: pdm_approval_item *) (* Pruned unused type: pdm_attribute_language_item *) (* Pruned unused type: pdm_certification_item *) (* Pruned unused type: pdm_classification_item *) (* Pruned unused type: pdm_date_and_time_item *) (* Pruned unused type: pdm_date_item *) (* Pruned unused type: pdm_document_reference_item *) (* Pruned unused type: pdm_effectivity_item *) (* Pruned unused type: pdm_event_occurrence_item *) (* Pruned unused type: pdm_external_class_name_item *) (* Pruned unused type: pdm_identification_item *) (* Pruned unused type: pdm_multi_language_attribute_item *) (* Pruned unused type: pdm_organization_item *) (* Pruned unused type: pdm_person_and_organization_item *) (* Pruned unused type: pdm_project_item *) (* Pruned unused type: pdm_security_classification_item *) (* Pruned unused type: pdm_time_interval_item *) TYPE person_and_organization_item = SELECT ( action, alternate_product_relationship, applied_action_assignment, applied_identification_assignment, applied_security_classification_assignment, approval, assembly_component_usage_substitute, certification, configuration_item, contract, document_file, executed_action, general_property, organizational_project, product, product_definition, product_definition_formation, product_definition_formation_relationship, property_definition, security_classification, shape_representation, versioned_action_request); END_TYPE; (* Pruned unused type: person_and_organization_item_203e2 *) TYPE person_organization_item = SELECT (change, change_request, configuration_item, contract, product, product_definition, product_definition_formation, security_classification, start_request, start_work); END_TYPE; TYPE person_organization_select = SELECT (organization, person, person_and_organization); END_TYPE; TYPE plane_angle_measure = REAL; END_TYPE; TYPE positive_length_measure = length_measure; WHERE WR1: SELF > 0.0; END_TYPE; TYPE positive_plane_angle_measure = plane_angle_measure; WHERE WR1: SELF > 0.0; END_TYPE; TYPE positive_ratio_measure = ratio_measure; WHERE WR1: SELF > 0.0; END_TYPE; TYPE preferred_surface_curve_representation = ENUMERATION OF (curve_3d, pcurve_s1, pcurve_s2); END_TYPE; TYPE presentable_text = STRING; END_TYPE; (* Pruned unused type: presentation_representation_select *) TYPE presentation_size_assignment_select = SELECT (presentation_view, presentation_area, area_in_set); END_TYPE; TYPE presentation_style_select = SELECT ( point_style, curve_style, surface_style_usage, symbol_style, fill_area_style, text_style, null_style); END_TYPE; TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition); END_TYPE; (* Pruned unused type: project_as_date_and_time_item *) (* Pruned unused type: project_as_date_item *) TYPE project_item = SELECT ( executed_action, product_concept); END_TYPE; TYPE ratio_measure = REAL; END_TYPE; (* Pruned unused type: representation_identification_item *) (* Pruned unused type: representation_version_item *) TYPE represented_definition = SELECT ( general_property, property_definition, shape_aspect, shape_aspect_relationship); END_TYPE; TYPE reversible_topology = SELECT (reversible_topology_item, list_of_reversible_topology_item, set_of_reversible_topology_item); END_TYPE; TYPE reversible_topology_item = SELECT (edge, path, face, face_bound, closed_shell, open_shell); END_TYPE; TYPE role_select = SELECT ( action_assignment, action_request_assignment, approval_assignment, approval_date_time, certification_assignment, contract_assignment, document_reference, effectivity_assignment, group_assignment, name_assignment, security_classification_assignment); END_TYPE; TYPE second_in_minute = REAL; WHERE WR1: { 0 <= SELF <= 60.0 }; END_TYPE; TYPE security_classification_item = SELECT ( assembly_component_usage, document_file, product, product_definition, product_definition_formation, product_definition_usage); END_TYPE; (* Pruned unused type: security_classification_item_203e2 *) TYPE set_of_reversible_topology_item = SET [0:?] of reversible_topology_item; END_TYPE; TYPE set_representation_item = SET [1:?] OF representation_item; END_TYPE; TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; (* Pruned unused type: shape_tolerance_select *) TYPE shell = SELECT (vertex_shell, wire_shell, open_shell, closed_shell); END_TYPE; TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); END_TYPE; 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; TYPE size_select = SELECT ( positive_length_measure, measure_with_unit, descriptive_measure); END_TYPE; TYPE solid_angle_measure = REAL; END_TYPE; TYPE source = ENUMERATION OF (made, bought, not_known); END_TYPE; TYPE source_item = SELECT ( identifier); END_TYPE; TYPE specified_item = SELECT (product_definition, shape_aspect); END_TYPE; (* Pruned unused type: spr_document_reference_item *) (* Pruned unused type: spr_organization_item *) (* Pruned unused type: spr_person_and_organization_item *) (* Pruned unused type: start_request_item *) TYPE style_context_select = SELECT (group, presentation_layer_assignment, representation, representation_item, presentation_set); END_TYPE; (* Pruned unused type: supported_item *) (* Pruned unused type: surface_boundary *) (* Pruned unused type: surface_model *) TYPE surface_side = ENUMERATION OF (positive, negative, both); END_TYPE; TYPE surface_side_style_select = SELECT ( surface_side_style); END_TYPE; TYPE surface_style_element_select = SELECT ( surface_style_fill_area, surface_style_boundary, surface_style_silhouette, surface_style_segmentation_curve, surface_style_control_grid, surface_style_parameter_line); END_TYPE; TYPE symbol_style_select = SELECT ( symbol_colour); END_TYPE; (* Pruned unused type: terminator *) TYPE text = STRING; END_TYPE; TYPE text_alignment = label; END_TYPE; TYPE text_delineation = label; END_TYPE; TYPE text_or_character = SELECT (annotation_text, annotation_text_character, defined_character_glyph, composite_text, text_literal); END_TYPE; TYPE text_path = ENUMERATION OF (left, right, up, down); END_TYPE; TYPE thermodynamic_temperature_measure = REAL; END_TYPE; TYPE time_interval_item = SELECT ( action, time_interval_based_effectivity); END_TYPE; (* Pruned unused type: time_interval_item_203e2 *) TYPE time_measure = REAL; END_TYPE; TYPE tolerance_method_definition = SELECT (tolerance_value, limits_and_fits); END_TYPE; TYPE transformation = SELECT (item_defined_transformation, functionally_defined_transformation); END_TYPE; TYPE transition_code = ENUMERATION OF (discontinuous, continuous, cont_same_gradient, cont_same_gradient_same_curvature); END_TYPE; TYPE trimming_preference = ENUMERATION OF (cartesian, parameter, unspecified); END_TYPE; TYPE trimming_select = SELECT (cartesian_point, parameter_value); END_TYPE; TYPE u_direction_count = INTEGER; WHERE WR1: SELF > 1; END_TYPE; TYPE unit = SELECT (derived_unit, named_unit); END_TYPE; TYPE v_direction_count = INTEGER; WHERE WR1: SELF > 1; END_TYPE; TYPE value_qualifier = SELECT (precision_qualifier, type_qualifier, uncertainty_qualifier); END_TYPE; TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; (* Pruned unused type: versionable_item *) TYPE volume_measure = REAL; END_TYPE; TYPE week_in_year_number = INTEGER; WHERE WR1: { 1 <= SELF <= 53 }; END_TYPE; (* Pruned unused type: wireframe_model *) TYPE work_item = SELECT (product_definition_formation); END_TYPE; TYPE year_number = INTEGER; END_TYPE; ENTITY action; name : label; description : OPTIONAL text; chosen_method : action_method; DERIVE id : identifier := get_id_value (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; ENTITY action_assignment ABSTRACT SUPERTYPE; assigned_action : action; DERIVE role : object_role := get_role (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY action_directive; name : label; description : OPTIONAL text; analysis : text; comment : text; requests : SET[1:?] OF versioned_action_request; END_ENTITY; ENTITY action_method; name : label; description : OPTIONAL text; consequence : text; purpose : text; END_ENTITY; ENTITY action_property; name : label; description : text; definition : characterized_action_definition; END_ENTITY; ENTITY action_property_representation; name : label; description : text; property : action_property; representation : representation; END_ENTITY; ENTITY action_relationship; name : label; description : OPTIONAL text; relating_action : action; related_action : action; END_ENTITY; ENTITY action_request_assignment ABSTRACT SUPERTYPE; assigned_action_request : versioned_action_request; DERIVE role : object_role := get_role (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY action_request_solution; method : action_method; request : versioned_action_request; DERIVE description : text := get_description_value (SELF); name : label := get_name_value (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; ENTITY action_request_status; status : label; assigned_request : versioned_action_request; END_ENTITY; ENTITY action_status; status : label; assigned_action : executed_action; END_ENTITY; 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; DERIVE name : label := get_name_value(SELF); url : identifier := get_id_value(SELF); 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; ENTITY advanced_brep_shape_representation SUBTYPE OF ( shape_representation ); WHERE WR1 : SIZEOF ( QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0; WR2 : SIZEOF ( QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0; WR3 : SIZEOF ( QUERY ( msb <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( csh <* msb_shells(msb)| NOT ( SIZEOF ( QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fcs)) )) = 0) )) = 0) )) = 0; WR4 : SIZEOF ( QUERY ( msb <* QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0; WR5 : SIZEOF ( QUERY ( brv <* QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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 <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; END_ENTITY; ENTITY advanced_face SUBTYPE OF ( face_surface ); WHERE WR1 : SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' ] * TYPEOF (face_geometry)) = 1; WR2 : SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element)) )) = 0) )) = 0; WR3 : SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (oe.edge_element\edge_curve.edge_geometry)) = 1) )) = 0) )) = 0; WR4 : SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_end)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_end\vertex_point.vertex_geometry)))) )) = 0) )) = 0; WR5 : SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (elp_fbnds.bound)) )) = 0; WR6 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (face_geometry\swept_surface.swept_curve)) = 1); WR7 : SIZEOF ( QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) )| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\vertex_point.vertex_geometry))) )) = 0; WR8 : SIZEOF ( QUERY ( bnd <* bounds| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' ] * TYPEOF (bnd.bound)) = 1) )) = 0; WR9 : SIZEOF ( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT ( SIZEOF ( QUERY ( sc_ag <* oe.edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (sc_ag)) )) = 0) )) = 0) )) = 0; WR10 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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 <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF ( QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT ( SIZEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry\polyline.points) >= 3) )) = 0) )) = 0); END_ENTITY; ENTITY alternate_product_relationship; name : label; definition : OPTIONAL text; alternate : product; base : product; basis : text; UNIQUE UR1: alternate, base; WHERE WR1: alternate :<>: base; END_ENTITY; ENTITY amount_of_substance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY amount_of_substance_unit SUBTYPE OF (named_unit); WHERE WR1: (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 1.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY angular_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; ENTITY angular_location SUBTYPE OF (dimensional_location); angle_selection : angle_relator; END_ENTITY; ENTITY angular_size SUBTYPE OF (dimensional_size); angle_selection : angle_relator; END_ENTITY; ENTITY angularity_tolerance SUBTYPE OF ( geometric_tolerance_with_datum_reference ); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) < 3; END_ENTITY; ENTITY annotation_curve_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (SELF\styled_item.item); END_ENTITY; ENTITY annotation_fill_area SUBTYPE OF (geometric_representation_item); boundaries : SET [1:?] OF curve; END_ENTITY; ENTITY annotation_fill_area_occurrence SUBTYPE OF (annotation_occurrence); fill_style_target : point; WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA' IN TYPEOF (SELF.item); END_ENTITY; ENTITY annotation_occurrence SUPERTYPE OF (ONEOF ( ANNOTATION_POINT_OCCURRENCE, ANNOTATION_CURVE_OCCURRENCE, ANNOTATION_FILL_AREA_OCCURRENCE, ANNOTATION_TEXT_OCCURRENCE, ANNOTATION_SYMBOL_OCCURRENCE)) SUBTYPE OF (styled_item); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF (SELF); END_ENTITY; ENTITY annotation_occurrence_associativity SUBTYPE OF (annotation_occurrence_relationship); WHERE WR1: SIZEOF (TYPEOF (SELF.related_annotation_occurrence) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE']) = 1; END_ENTITY; ENTITY annotation_occurrence_relationship; name : label; description : text; relating_annotation_occurrence : annotation_occurrence; related_annotation_occurrence : annotation_occurrence; END_ENTITY; ENTITY annotation_point_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF (SELF\styled_item.item); END_ENTITY; 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 ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NULL_STYLE' IN TYPEOF (sty.styles[1])) ))=0; WR3: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF (SELF.item)); WR4: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF (SELF.item\mapped_item.mapping_source.mapped_representation)); END_ENTITY; ENTITY annotation_symbol SUBTYPE OF(mapped_item); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF (SELF\mapped_item.mapping_source); WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_TARGET' IN TYPEOF (SELF\mapped_item.mapping_target); WR3: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF (SELF); END_ENTITY; ENTITY annotation_symbol_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFINED_SYMBOL'] * TYPEOF(SELF\styled_item.item)) > 0; END_ENTITY; ENTITY annotation_table SUBTYPE OF(annotation_symbol); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TABLE_REPRESENTATION' IN TYPEOF (SELF\mapped_item.mapping_source.mapped_representation); END_ENTITY; ENTITY annotation_table_occurrence SUBTYPE OF (annotation_symbol_occurrence); WHERE WR1: SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TABLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFINED_TABLE'] * TYPEOF (SELF\styled_item.item)) > 0; END_ENTITY; ENTITY annotation_text SUBTYPE OF (mapped_item); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( SELF\mapped_item.mapping_target); WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF( SELF\mapped_item.mapping_source.mapped_representation); WR3: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF); END_ENTITY; ENTITY annotation_text_character SUBTYPE OF (mapped_item); alignment : text_alignment; WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN TYPEOF (SELF\mapped_item.mapping_source.mapped_representation); WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF (SELF\mapped_item.mapping_target); WR3: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF (SELF); END_ENTITY; ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_CHARACTER', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFINED_CHARACTER_GLYPH', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'] * TYPEOF (SELF\styled_item.item)) > 0; END_ENTITY; ENTITY annotation_text_with_associated_curves SUBTYPE OF (annotation_text); associated_curves : SET[1:?] of curve; END_ENTITY; ENTITY annotation_text_with_blanking_box SUBTYPE OF (annotation_text); blanking : planar_box; END_ENTITY; ENTITY annotation_text_with_delineation SUBTYPE OF (annotation_text); delineation : text_delineation; END_ENTITY; ENTITY annotation_text_with_extent SUBTYPE OF (annotation_text); extent : planar_extent; END_ENTITY; ENTITY apex SUBTYPE OF (derived_shape_aspect); END_ENTITY; ENTITY application_context; application : label; DERIVE description : text := get_description_value (SELF); id : identifier := get_id_value (SELF); INVERSE context_elements : SET[1:?] OF application_context_element FOR frame_of_reference; WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; ENTITY application_context_element SUPERTYPE OF (ONEOF ( PRODUCT_CONCEPT_CONTEXT, PRODUCT_CONTEXT, PRODUCT_DEFINITION_CONTEXT)); name : label; frame_of_reference : application_context; END_ENTITY; ENTITY application_context_relationship; name : label; description : OPTIONAL text; relating_context : application_context; related_context : application_context; END_ENTITY; ENTITY application_protocol_definition; status : label; application_interpreted_model_schema_name : label; application_protocol_year : year_number; application : application_context; END_ENTITY; ENTITY applied_action_assignment SUBTYPE OF (action_assignment); items : SET [1 : ?] OF action_items; END_ENTITY; ENTITY applied_action_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1 : ?] OF action_request_item; END_ENTITY; ENTITY applied_approval_assignment SUBTYPE OF (approval_assignment); items : SET[1:?] OF approval_item; END_ENTITY; ENTITY applied_certification_assignment SUBTYPE OF (certification_assignment); items : SET[1:?] OF certification_item; END_ENTITY; ENTITY applied_classification_assignment SUBTYPE OF (classification_assignment); items : SET[1:?] OF classification_item; END_ENTITY; ENTITY applied_contract_assignment SUBTYPE OF (contract_assignment); items : SET [1:?] OF contract_item; END_ENTITY; ENTITY applied_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET [1:?] OF date_and_time_item; END_ENTITY; ENTITY applied_date_assignment SUBTYPE OF (date_assignment); items : SET [1:?] OF date_item; END_ENTITY; ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET[1:?] OF document_reference_item; END_ENTITY; ENTITY applied_document_usage_constraint_assignment SUBTYPE OF (document_usage_constraint_assignment); items : SET[1:?] OF document_reference_item; END_ENTITY; ENTITY applied_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET[1:?] OF effectivity_item; END_ENTITY; ENTITY applied_event_occurrence_assignment SUBTYPE OF (event_occurrence_assignment); items : SET[1:?] OF event_occurrence_item; END_ENTITY; ENTITY applied_external_identification_assignment SUBTYPE OF (external_identification_assignment); items : SET [1 : ?] OF external_identification_item; END_ENTITY; ENTITY applied_group_assignment SUBTYPE OF (group_assignment); items : SET[1:?] OF groupable_item; END_ENTITY; ENTITY applied_identification_assignment SUBTYPE OF (identification_assignment); items : SET[1:?] OF identification_item; END_ENTITY; ENTITY applied_name_assignment SUBTYPE OF (name_assignment); item : name_item; END_ENTITY; ENTITY applied_organization_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF organization_item; END_ENTITY; ENTITY applied_organizational_project_assignment SUBTYPE OF (organizational_project_assignment); items : SET[1:?] OF project_item; END_ENTITY; ENTITY applied_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); items : SET [1:?] OF person_and_organization_item; END_ENTITY; ENTITY applied_security_classification_assignment SUBTYPE OF (security_classification_assignment); items : SET [1:?] OF security_classification_item; END_ENTITY; ENTITY applied_time_interval_assignment SUBTYPE OF (time_interval_assignment); items : SET[0:?] OF time_interval_item; END_ENTITY; ENTITY approval; status : approval_status; level : label; END_ENTITY; ENTITY approval_assignment ABSTRACT SUPERTYPE; assigned_approval : approval; DERIVE role : object_role := get_role (SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY approval_date_time; date_time : date_time_select; dated_approval : approval; DERIVE role : object_role := get_role (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY approval_person_organization; person_organization : person_organization_select; authorized_approval : approval; role : approval_role; END_ENTITY; ENTITY approval_relationship; name : label; description : OPTIONAL text; relating_approval : approval; related_approval : approval; END_ENTITY; ENTITY approval_role; role : label; DERIVE description : text := get_description_value (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY approval_status; name : label; END_ENTITY; ENTITY area_in_set; area : presentation_area; in_set : presentation_set; END_ENTITY; ENTITY area_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY area_unit SUBTYPE OF (named_unit); WHERE WR1: (SELF\named_unit.dimensions.length_exponent = 2.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY assembly_component_usage SUPERTYPE OF (ONEOF ( NEXT_ASSEMBLY_USAGE_OCCURRENCE, SPECIFIED_HIGHER_USAGE_OCCURRENCE, PROMISSORY_USAGE_OCCURRENCE)) SUBTYPE OF (product_definition_usage); reference_designator : OPTIONAL identifier; END_ENTITY; ENTITY assembly_component_usage_substitute; name : label; definition : OPTIONAL text; base : assembly_component_usage; substitute : assembly_component_usage; UNIQUE UR1: base,substitute; WHERE WR1: base.relating_product_definition :=: substitute.relating_product_definition; WR2: base :<>: substitute; END_ENTITY; ENTITY attribute_classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; attribute_name : label; role : classification_role; END_ENTITY; ENTITY attribute_language_assignment SUBTYPE OF (attribute_classification_assignment); SELF\attribute_classification_assignment.assigned_class: language; items : SET [1:?] OF attribute_language_item; WHERE WR1: SELF\attribute_classification_assignment.role.name IN ['primary', 'translated']; WR2: SELF\attribute_classification_assignment.attribute_name<> ''; END_ENTITY; ENTITY attribute_value_assignment ABSTRACT SUPERTYPE; attribute_name : label; attribute_value : attribute_type; role : attribute_value_role; END_ENTITY; ENTITY attribute_value_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY axis1_placement SUBTYPE OF (placement); axis : OPTIONAL direction; DERIVE z : direction := NVL(normalise(axis), dummy_gri || direction([0.0,0.0,1.0])); WHERE WR1: SELF\geometric_representation_item.dim = 3; END_ENTITY; 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; 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.0); END_ENTITY; 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: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNIFORM_CURVE' IN TYPEOF(self)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(self)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BEZIER_CURVE' IN TYPEOF(self)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(self)); END_ENTITY; 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; 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: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; 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; ENTITY background_colour SUBTYPE OF (colour); presentation : area_or_view; UNIQUE UR1: presentation; END_ENTITY; ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; ENTITY block SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; x : positive_length_measure; y : positive_length_measure; z : positive_length_measure; END_ENTITY; ENTITY boolean_result SUBTYPE OF (geometric_representation_item); operator : boolean_operator; first_operand : boolean_operand; second_operand : boolean_operand; END_ENTITY; ENTITY boundary_curve SUBTYPE OF (composite_curve_on_surface); WHERE WR1: SELF\composite_curve.closed_curve; END_ENTITY; ENTITY bounded_curve SUPERTYPE OF (ONEOF ( POLYLINE, B_SPLINE_CURVE, TRIMMED_CURVE, BOUNDED_PCURVE, BOUNDED_SURFACE_CURVE, COMPOSITE_CURVE)) SUBTYPE OF (curve); END_ENTITY; ENTITY bounded_pcurve SUBTYPE OF (pcurve, bounded_curve); WHERE WR1: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\pcurve.reference_to_curve.items[1])); END_ENTITY; ENTITY bounded_surface SUPERTYPE OF (ONEOF ( B_SPLINE_SURFACE, RECTANGULAR_TRIMMED_SURFACE, CURVE_BOUNDED_SURFACE, RECTANGULAR_COMPOSITE_SURFACE)) SUBTYPE OF (surface); END_ENTITY; ENTITY bounded_surface_curve SUBTYPE OF (surface_curve, bounded_curve); WHERE WR1: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve.curve_3d)); END_ENTITY; ENTITY box_domain SUBTYPE OF (founded_item); corner : cartesian_point; xlength : positive_length_measure; ylength : positive_length_measure; zlength : positive_length_measure; WHERE WR1: SIZEOF(QUERY(item <* USEDIN(SELF,'')| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOXED_HALF_SPACE' IN TYPEOF(item)))) = 0; END_ENTITY; ENTITY boxed_half_space SUBTYPE OF(half_space_solid); enclosure : box_domain; END_ENTITY; ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; END_ENTITY; 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; ENTITY camera_image SUBTYPE OF (mapped_item); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_USAGE' IN TYPEOF (SELF\mapped_item.mapping_source); WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANAR_BOX' IN TYPEOF (SELF\mapped_item.mapping_target); WR3: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF (SELF); END_ENTITY; 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: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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; WR4: (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0) AND (SELF\mapped_item.mapping_target\planar_extent.size_in_y > 0); WR5: (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_window.size_in_x > 0) AND (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_window.size_in_y > 0); WR6: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF (SELF\mapped_item. mapping_target\planar_box.placement)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF (SELF\mapped_item. mapping_target\planar_box.placement)); END_ENTITY; ENTITY camera_model SUBTYPE OF (geometric_representation_item); WHERE WR1: (SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ITEM_DEFINED_TRANSFORMATION.' + 'TRANSFORM_ITEM_1')) + SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN')) ) > 0; WR2: SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'STYLED_ITEM.ITEM')) = 0; END_ENTITY; 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.0) 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; ENTITY camera_usage SUBTYPE OF (representation_map); WHERE WR1: NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\representation_map.mapped_representation)); WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL' IN TYPEOF (SELF\representation_map.mapping_origin); END_ENTITY; ENTITY cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; 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.0); WHERE WR1: scl > 0.0; END_ENTITY; 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\geometric_representation_item.dim = 2; END_ENTITY; 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\geometric_representation_item.dim = 3; END_ENTITY; ENTITY cc_design_approval SUBTYPE OF (approval_assignment); items : SET[1:?] OF approved_item; END_ENTITY; ENTITY cc_design_certification SUBTYPE OF (certification_assignment); items : SET[1:?] OF certified_item; END_ENTITY; ENTITY cc_design_contract SUBTYPE OF (contract_assignment); items : SET[1:?] OF contracted_item; END_ENTITY; ENTITY cc_design_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET[1:?] OF date_time_item; END_ENTITY; ENTITY cc_design_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); items : SET[1:?] OF person_organization_item; WHERE WR1: cc_design_person_and_organization_correlation(SELF); END_ENTITY; ENTITY cc_design_security_classification SUBTYPE OF (security_classification_assignment); items : SET[1:?] OF classified_item; END_ENTITY; ENTITY cc_design_specification_reference SUBTYPE OF (document_reference); items : SET[1:?] OF specified_item; END_ENTITY; ENTITY celsius_temperature_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY centre_of_symmetry SUBTYPE OF (derived_shape_aspect); WHERE WR1: SIZEOF (QUERY(sadr<*SELF\derived_shape_aspect.deriving_relationships| NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRIC_SHAPE_ASPECT' IN TYPEOF (sadr\shape_aspect_relationship.related_shape_aspect))))=0; END_ENTITY; ENTITY certification; name : label; purpose : text; kind : certification_type; END_ENTITY; ENTITY certification_assignment ABSTRACT SUPERTYPE; assigned_certification : certification; DERIVE role : object_role := get_role (SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY certification_type; description : label; END_ENTITY; ENTITY change SUBTYPE OF (action_assignment); items : SET[1:?] OF work_item; END_ENTITY; ENTITY change_request SUBTYPE OF (action_request_assignment); items : SET[1:?] OF change_request_item; END_ENTITY; ENTITY character_glyph_style_outline; outline_style : curve_style; END_ENTITY; ENTITY character_glyph_style_stroke; stroke_style : curve_style; END_ENTITY; ENTITY characterized_object; name : label; description : OPTIONAL text; END_ENTITY; ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; ENTITY circular_runout_tolerance SUBTYPE OF ( geometric_tolerance_with_datum_reference ); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2; END_ENTITY; ENTITY class SUBTYPE OF (group); END_ENTITY; ENTITY class_by_extension SUBTYPE OF (class); END_ENTITY; ENTITY class_by_intension SUBTYPE OF (class); END_ENTITY; ENTITY classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; role : classification_role; END_ENTITY; ENTITY classification_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY closed_shell SUBTYPE OF (connected_face_set); END_ENTITY; ENTITY coaxiality_tolerance SUBTYPE OF ( geometric_tolerance_with_datum_reference ); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2; END_ENTITY; ENTITY colour; END_ENTITY; ENTITY colour_rgb SUBTYPE OF (colour_specification); red : REAL; green : REAL; blue : REAL; WHERE WR1: {0.0 <= red <= 1.0}; WR2: {0.0 <= green <= 1.0}; WR3: {0.0 <= blue <= 1.0}; END_ENTITY; ENTITY colour_specification SUBTYPE OF (colour); name : label; END_ENTITY; ENTITY common_datum SUBTYPE OF ( composite_shape_aspect , datum ); WHERE WR1 : SIZEOF (SELF.component_relationships) = 2; WR2 : SIZEOF ( QUERY ( sar <* SELF.component_relationships| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF (sar.related_shape_aspect)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMMON_DATUM' IN TYPEOF (sar.related_shape_aspect))) )) = 0; END_ENTITY; 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; 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; ENTITY composite_curve_segment SUBTYPE OF (founded_item); transition : transition_code; same_sense : BOOLEAN; parent_curve : curve; INVERSE using_curves : BAG[1:?] OF composite_curve FOR segments; WHERE WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve)); END_ENTITY; ENTITY composite_shape_aspect SUBTYPE OF (shape_aspect); INVERSE component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; END_ENTITY; 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; ENTITY composite_text_with_associated_curves SUBTYPE OF (composite_text); associated_curves : SET[1:?] of curve; END_ENTITY; ENTITY composite_text_with_blanking_box SUBTYPE OF (composite_text); blanking : planar_box; END_ENTITY; ENTITY composite_text_with_delineation SUBTYPE OF (composite_text); delineation : text_delineation; END_ENTITY; ENTITY composite_text_with_extent SUBTYPE OF (composite_text); extent : planar_extent; END_ENTITY; ENTITY compound_representation_item SUBTYPE OF (representation_item); item_element : compound_item_definition; END_ENTITY; ENTITY concentricity_tolerance SUBTYPE OF ( geometric_tolerance_with_datum_reference ); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) = 1; END_ENTITY; ENTITY configuration_design; configuration : configuration_item; design : configuration_design_item; DERIVE name : label := get_name_value (SELF); description : text := get_description_value (SELF); UNIQUE UR1: configuration, design; WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; WR2: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY configuration_effectivity SUBTYPE OF (product_definition_effectivity); configuration : configuration_design; UNIQUE UR1: configuration, usage, id; WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_USAGE' IN TYPEOF (SELF\product_definition_effectivity.usage); END_ENTITY; ENTITY configuration_item; id : identifier; name : label; description : OPTIONAL text; item_concept : product_concept; purpose : OPTIONAL label; END_ENTITY; ENTITY conic SUPERTYPE OF (ONEOF ( CIRCLE, ELLIPSE, HYPERBOLA, PARABOLA)) SUBTYPE OF (curve); position: axis2_placement; END_ENTITY; ENTITY conical_surface SUBTYPE OF (elementary_surface); radius : length_measure; semi_angle : plane_angle_measure; WHERE WR1: radius >= 0.0; END_ENTITY; ENTITY connected_edge_set SUBTYPE OF (topological_representation_item); ces_edges : SET [1:?] OF edge; END_ENTITY; ENTITY connected_face_set SUPERTYPE OF (ONEOF ( CLOSED_SHELL, OPEN_SHELL)) SUBTYPE OF (topological_representation_item); cfs_faces : SET [1:?] OF face; END_ENTITY; ENTITY constructive_geometry_representation SUBTYPE OF (representation); WHERE WR1: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND ({2 <= SELF.context_of_items\geometric_representation_context. coordinate_space_dimension <= 3}); WR2: SIZEOF( QUERY( cgr_i <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1 )) = 0; WR3: SIZEOF( USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) > 0; WR4: SIZEOF( USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') ) = 0; END_ENTITY; ENTITY constructive_geometry_representation_relationship SUBTYPE OF (representation_relationship); WHERE WR1: (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items)); WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(SELF.rep_2); WR3: SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONSTRUCTIVE_GEOMETRY_REPRESENTATION'] * TYPEOF(SELF.rep_1)) = 1; WR4: NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY; ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; ENTITY context_dependent_shape_representation; representation_relation : shape_representation_relationship; represented_product_relation : product_definition_shape; DERIVE description : text := get_description_value (SELF); name : label := get_name_value (SELF); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF (SELF.represented_product_relation.definition); WR2: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR3: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; ENTITY context_dependent_unit SUBTYPE OF (named_unit); name : label; END_ENTITY; ENTITY contract; name : label; purpose : text; kind : contract_type; END_ENTITY; ENTITY contract_assignment ABSTRACT SUPERTYPE; assigned_contract : contract; DERIVE role : object_role := get_role (SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY contract_type; description : label; END_ENTITY; ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; END_ENTITY; ENTITY coordinated_universal_time_offset; hour_offset : INTEGER; minute_offset : OPTIONAL INTEGER; sense : ahead_or_behind; DERIVE actual_minute_offset : INTEGER := NVL(minute_offset,0); WHERE WR1: { 0 <= hour_offset < 24 }; WR2: { 0 <= actual_minute_offset <= 59 }; WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <>0)) AND (sense = exact)); END_ENTITY; ENTITY csg_shape_representation SUBTYPE OF ( shape_representation ); WHERE WR1 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; WR2 : SIZEOF ( QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REVOLVED_FACE_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (it)) <> 1) )) = 0; WR3 : SIZEOF ( QUERY ( mi <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; WR4 : SIZEOF ( QUERY ( sr <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA' IN TYPEOF (it)) )| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REVOLVED_FACE_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (sr\solid_replica.parent_solid)) = 0) )) = 0; WR5 : SIZEOF ( QUERY ( it <* SELF.items| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (it)) )) > 0; END_ENTITY; ENTITY csg_solid SUBTYPE OF (solid_model); tree_root_expression : csg_select; END_ENTITY; 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; 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) OR (SIZEOF (QUERY (temp <* boundaries | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = 0); WR2: (NOT(implicit_outer)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); WR3: SIZEOF(QUERY(temp <* boundaries | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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; ENTITY curve_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; 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; ENTITY curve_style; name : label; curve_font : curve_font_or_scaled_curve_font_select; curve_width : size_select; curve_colour : colour; END_ENTITY; ENTITY curve_style_font; name : label; pattern_list : LIST [1:?] OF curve_style_font_pattern; END_ENTITY; ENTITY curve_style_font_pattern; visible_segment_length : positive_length_measure; invisible_segment_length : positive_length_measure; END_ENTITY; ENTITY cylindrical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; ENTITY cylindricity_tolerance SUBTYPE OF ( geometric_tolerance ); WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)); END_ENTITY; ENTITY date SUPERTYPE OF (ONEOF ( CALENDAR_DATE, ORDINAL_DATE, WEEK_OF_YEAR_AND_DAY_DATE)); year_component : year_number; END_ENTITY; ENTITY date_and_time; date_component : date; time_component : local_time; END_ENTITY; ENTITY date_and_time_assignment ABSTRACT SUPERTYPE; assigned_date_and_time : date_and_time; role : date_time_role; END_ENTITY; ENTITY date_assignment ABSTRACT SUPERTYPE; assigned_date : date; role : date_role; END_ENTITY; ENTITY date_role; name : label; DERIVE description : text := get_description_value (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY date_time_role; name : label; DERIVE description : text := get_description_value (SELF); WHERE WR1: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY dated_effectivity SUBTYPE OF (effectivity); effectivity_end_date : OPTIONAL date_time_or_event_occurrence; effectivity_start_date : date_time_or_event_occurrence; END_ENTITY; ENTITY datum SUBTYPE OF (shape_aspect); identification :identifier; INVERSE established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect; WHERE WR1: SIZEOF (QUERY (x<*SELF\datum.established_by_relationships | SIZEOF (TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)* ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_FEATURE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_TARGET']) <> 1))=0; END_ENTITY; ENTITY datum_feature SUBTYPE OF (shape_aspect); INVERSE feature_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF (QUERY (sar<* bag_to_set (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.'+ 'RELATING_SHAPE_ASPECT')) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect))))=0; WR2: SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; ENTITY datum_feature_callout SUBTYPE OF (draughting_callout); END_ENTITY; ENTITY datum_reference; precedence : INTEGER; referenced_datum : datum; WHERE WR1: precedence > 0; END_ENTITY; ENTITY datum_target SUBTYPE OF (shape_aspect); target_id : identifier; INVERSE target_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF (QUERY (sar<* bag_to_set (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect))))=0; WR2: SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; ENTITY datum_target_callout SUBTYPE OF (draughting_callout); END_ENTITY; ENTITY default_tolerance_table SUBTYPE OF (representation); WHERE WR1: SIZEOF( QUERY( i <* SELF.items | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)) )) = 0; WR2: (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | rr.name < 'general tolerance definition' )) = 0) AND (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance') )) = 0) AND (SIZEOF( USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) = 0); END_ENTITY; ENTITY default_tolerance_table_cell SUBTYPE OF (compound_representation_item); WHERE WR1: SIZEOF(QUERY( x <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION.ITEMS') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DEFAULT_TOLERANCE_TABLE' IN TYPEOF(x)))=1 ; WR2: default_tolerance_table_cell_wr2(SELF\compound_representation_item.item_element); WR3: default_tolerance_table_cell_wr3(SELF\compound_representation_item.item_element); WR4: default_tolerance_table_cell_wr4(SELF\compound_representation_item.item_element); WR5: default_tolerance_table_cell_wr5(SELF\compound_representation_item.item_element); END_ENTITY; ENTITY defined_character_glyph SUBTYPE OF(geometric_representation_item); definition : defined_glyph_select; placement : axis2_placement; END_ENTITY; ENTITY defined_symbol SUBTYPE OF(geometric_representation_item); definition : defined_symbol_select; target : symbol_target; END_ENTITY; ENTITY defined_table SUBTYPE OF(defined_symbol); END_ENTITY; ENTITY definitional_representation SUBTYPE OF (representation); WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items ); END_ENTITY; ENTITY degenerate_pcurve SUBTYPE OF (point); basis_surface: surface; reference_to_curve : definitional_representation; WHERE WR1: SIZEOF(reference_to_curve\representation.items) = 1; WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (reference_to_curve\representation.items[1]); WR3: reference_to_curve\representation. items[1]\geometric_representation_item.dim =2; END_ENTITY; ENTITY degenerate_toroidal_surface SUBTYPE OF (toroidal_surface); select_outer : BOOLEAN; WHERE WR1: major_radius < minor_radius; END_ENTITY; ENTITY derived_shape_aspect SUPERTYPE OF (ONEOF ( APEX, CENTRE_OF_SYMMETRY, GEOMETRIC_ALIGNMENT, GEOMETRIC_INTERSECTION, PARALLEL_OFFSET, PERPENDICULAR_TO, EXTENSION, TANGENT)) SUBTYPE OF (shape_aspect); INVERSE deriving_relationships : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF (QUERY (dr <* SELF\derived_shape_aspect.deriving_relationships | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHAPE_ASPECT_DERIVING_RELATIONSHIP' IN TYPEOF (dr)))) = 0; END_ENTITY; ENTITY derived_unit; elements : SET[1:?] OF derived_unit_element; DERIVE name : label := get_name_value (SELF); WHERE WR1: (SIZEOF (elements) > 1) OR ((SIZEOF (elements) = 1) AND (elements[1].exponent <> 1.0)); WR2: SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; ENTITY derived_unit_element; unit : named_unit; exponent : REAL; END_ENTITY; ENTITY description_attribute; attribute_value : text; described_item : description_attribute_select; END_ENTITY; ENTITY descriptive_representation_item SUBTYPE OF (representation_item); description : text; END_ENTITY; ENTITY design_context SUBTYPE OF (product_definition_context); WHERE WR1: SELF.life_cycle_stage = 'design'; END_ENTITY; ENTITY design_make_from_relationship SUBTYPE OF (product_definition_relationship); END_ENTITY; ENTITY diameter_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; ENTITY dimension_callout_component_relationship SUBTYPE OF (draughting_callout_relationship); WHERE WR1: SELF.name IN ['prefix', 'suffix']; WR2: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF (SELF.relating_draughting_callout); WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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 | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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 | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | NOT (ato.name = 'suffix text') )) = 0)); END_ENTITY; ENTITY dimension_callout_relationship SUBTYPE OF (draughting_callout_relationship); WHERE WR1: SELF.name IN ['primary', 'secondary']; WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])>=1; WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT']) = 0; WR4: SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = SELF.related_draughting_callout.contents; END_ENTITY; ENTITY dimension_curve SUBTYPE OF (annotation_curve_occurrence); WHERE wr1: (SIZEOF( QUERY(dct <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct)) )) ) <= 2); wr2: SIZEOF( QUERY( dcdc <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc))) )>= 1; wr3: (SIZEOF( QUERY(dct1 <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1)) AND (dct1.role = origin))) ) <= 1) AND (SIZEOF( QUERY (dct2 <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) AND (dct2.role = target))) ) <= 1); END_ENTITY; ENTITY dimension_curve_directed_callout SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF(QUERY(d_c<*SELF\draughting_callout.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(d_c))))=1; WR2: SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; ENTITY dimension_curve_terminator SUBTYPE OF (terminator_symbol); role : dimension_extent_usage; WHERE WR1: 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN TYPEOF (SELF\terminator_symbol.annotated_curve); END_ENTITY; ENTITY dimension_pair SUBTYPE OF (draughting_callout_relationship); WHERE WR1: SELF.name IN ['chained', 'parallel']; WR2: SIZEOF (TYPEOF (SELF.relating_draughting_callout) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])=1; WR3: SIZEOF (TYPEOF (SELF.related_draughting_callout) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])=1; END_ENTITY; ENTITY dimension_related_tolerance_zone_element; related_dimension : dimensional_location; related_element : tolerance_zone_definition; END_ENTITY; ENTITY dimension_text_associativity SUBTYPE OF (text_literal, mapped_item); WHERE WR1: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF (SELF\mapped_item. mapping_source.mapped_representation)); WR2: ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF (SELF\mapped_item.mapping_target)); WR3: SIZEOF (QUERY (ato <* QUERY (si <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(si))) | NOT (SIZEOF( QUERY (dc <* USEDIN (ato, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF (dc))) * [SELF\mapped_item.mapping_target]) = 1) )) = 0; END_ENTITY; ENTITY dimensional_characteristic_representation; dimension : dimensional_characteristic; representation : shape_dimension_representation; END_ENTITY; 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; ENTITY dimensional_location SUPERTYPE OF (ONEOF ( ANGULAR_LOCATION, DIMENSIONAL_LOCATION_WITH_PATH)) SUBTYPE OF (shape_aspect_relationship); END_ENTITY; ENTITY dimensional_location_with_path SUBTYPE OF (dimensional_location); path : shape_aspect; END_ENTITY; ENTITY dimensional_size SUPERTYPE OF (ONEOF ( ANGULAR_SIZE, DIMENSIONAL_SIZE_WITH_PATH)); applies_to : shape_aspect; name : label; WHERE WR1: applies_to.product_definitional = TRUE; END_ENTITY; ENTITY dimensional_size_with_path SUBTYPE OF (dimensional_size); path : shape_aspect; END_ENTITY; ENTITY directed_action SUBTYPE OF (executed_action); directive : action_directive; END_ENTITY; ENTITY directed_dimensional_location SUBTYPE OF (dimensional_location); END_ENTITY; ENTITY direction SUBTYPE OF (geometric_representation_item); direction_ratios : LIST [2:3] OF REAL; WHERE WR1: SIZEOF(QUERY(tmp <* direction_ratios | tmp <> 0.0)) > 0; END_ENTITY; ENTITY document; id : identifier; name : label; description : OPTIONAL text; kind : document_type; INVERSE representation_types : SET[0:?] OF document_representation_type FOR represented_document; END_ENTITY; ENTITY document_file SUBTYPE OF (document, characterized_object); WHERE WR1: SELF\characterized_object.name = ''; WR2: NOT EXISTS(SELF\characterized_object.description); WR3: SIZEOF( QUERY( drt <* SELF\document.representation_types | drt.name IN ['digital','physical'])) = 1; END_ENTITY; ENTITY document_product_association; name : label; description : OPTIONAL text; relating_document : document; related_product : product_or_formation_or_definition; END_ENTITY; ENTITY document_product_equivalence SUBTYPE OF (document_product_association); WHERE WR1: SELF\document_product_association.name = 'equivalence'; WR2: NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT' IN TYPEOF(SELF\document_product_association.related_product)) OR ((SELF\document_product_association.relating_document.kind. product_data_type = 'configuration controlled document') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF\document_product_association.related_product,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1)); WR3: NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(SELF.related_product)) OR ((SELF\document_product_association.relating_document.kind.product_data_type = 'configuration controlled document version') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF.related_product\product_definition_formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); WR4: NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.related_product)) OR ((SELF\document_product_association.relating_document.kind.product_data_type = 'configuration controlled document definition') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF\document_product_association.related_product\product_definition.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1)); END_ENTITY; ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; DERIVE role : object_role := get_role (SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY document_relationship; name : label; description : OPTIONAL text; relating_document : document; related_document : document; END_ENTITY; ENTITY document_representation_type; name : label; represented_document : document; END_ENTITY; ENTITY document_type; product_data_type : label; END_ENTITY; ENTITY document_usage_constraint; source : document; subject_element : label; subject_element_value : text; END_ENTITY; ENTITY document_usage_constraint_assignment ABSTRACT SUPERTYPE; assigned_document_usage : document_usage_constraint; role : document_usage_role; END_ENTITY; ENTITY document_usage_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY document_with_class SUBTYPE OF (document); class : identifier; END_ENTITY; ENTITY draughting_annotation_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: -- curve_has_curve_style: (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1]))) )) = 0); WR2: -- fill_area_has_fill_style: (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE' IN TYPEOF (sty.styles[1]))) )) = 0); WR3: -- styled_fill_boundaries: (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (bound <* SELF.item\annotation_fill_area.boundaries | NOT (SIZEOF (QUERY (si <* USEDIN (bound, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'STYLED_ITEM.ITEM') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0); WR4: -- symbol_has_symbol_style: (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND (SIZEOF (TYPEOF (sty.styles[1]) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_STYLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NULL_STYLE']) = 1)) )) = 0); WR5: -- allowable_symbol_representations: (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF (SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item)))) OR (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF (SELF.item\mapped_item.mapping_source. mapped_representation)) = 1); WR6: -- text_has_text_style: (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles | NOT ((SIZEOF (sty.styles) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE' IN TYPEOF (sty.styles[1]))) )) = 0); WR7: -- allowable_text: (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF))) OR (SIZEOF (TYPEOF(SELF.item) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL']) = 1); WR8: -- text_not_nested: (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* SELF.item\composite_text.collected_text | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF (tl)) )) = 0); WR9: -- text_alignment_literals: (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF (SELF.item)))) OR (SELF.item\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']); WR10: -- text_alignment_composites: (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* QUERY (text <* SELF. item\composite_text.collected_text |('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF(text))) | NOT (tl\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']) )) = 0); WR11: -- single_text_alignment: NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT' IN TYPEOF (SELF.item))) OR check_text_alignment(SELF.item); WR12: -- single_text_font: NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT' IN TYPEOF (SELF.item))) OR check_text_font(SELF.item); WR13: -- allowable_text_literals: (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT' IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <* QUERY (text <* SELF.item\composite_text.collected_text | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF (text))) | NOT (SIZEOF (TYPEOF(tl) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0) )) = 0); WR14: -- styled_text_literal_curves: (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)) )) > 0) )) = 0); WR15: -- styled_composite_text_curves: (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (SELF)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)) )) > 0) )) = 0); WR16: -- curve_style_has_width: SIZEOF (QUERY (cs <* QUERY (sty <* SELF.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1]))) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF (cs.styles[1]\curve_style.curve_width)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs.styles[1]\curve_style. curve_width\measure_with_unit.value_component))))) = 0; WR17: -- tiling_constraints: SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE' IN TYPEOF (sty.styles[1]))) | NOT ((SIZEOF (QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF (fs)))) <= 1) AND (SIZEOF (QUERY (fst <* QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF (fs))) | NOT (SIZEOF (fst\fill_area_style_tiles.tiles) = 1) )) = 0)) )) = 0; WR18: -- hatching_constraints: SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE' IN TYPEOF (sty.styles[1]))) | NOT (SIZEOF (QUERY (fsh <* QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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; WR19: -- text_style_constraint: SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE' IN TYPEOF(sty.styles[1]))) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF (ts.styles[1])))) = 0; WR20: -- text_style_characteristics: SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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; ENTITY draughting_callout SUBTYPE OF (geometric_representation_item); contents : SET [1:?] OF draughting_callout_element; END_ENTITY; ENTITY draughting_callout_relationship; name : label; description : text; relating_draughting_callout : draughting_callout; related_draughting_callout : draughting_callout; END_ENTITY; ENTITY draughting_elements SUBTYPE OF (draughting_callout); WHERE WR1: SIZEOF (QUERY (l_c <* QUERY (con <* SELF.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) | NOT (SIZEOF (QUERY (ldc <* USEDIN (l_c, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF (ldc)))) <= 1)))=0; WR2: NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) OR