(* $Id: mim_lf.exp,v 1.43 2009/09/10 20:08:09 darla Exp $ ISO TC184/SC4/WG3 N2635 - ISO/TS 10303-403 AP203 configuration controlled 3d design of mechanical parts and assemblies - EXPRESS MIM Long form Supersedes ISO TC184/SC4/WG3 N2464 *) SCHEMA Ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies_mim_lf; CONSTANT deprecated_constructed_data_types : SET [0:?] OF STRING := ['approved_item', 'certified_item', 'change_request_item', 'contracted_item', 'cc_classified_item', 'date_time_item', 'cc_person_organization_item', 'cc_specified_item', 'start_request_item', 'work_item']; deprecated_entity_data_types : SET [0:?] 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 [0:?] 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(); pre_defined_picture_representation_types : SET [0:?] OF STRING := [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF']; END_CONSTANT; TYPE absorbed_dose_measure = REAL; END_TYPE; TYPE acceleration_measure = REAL; END_TYPE; TYPE action_items = SELECT ( action_directive, certification_item, characterized_object, classification_item, configuration_effectivity, document_reference_item, identification_item, organization, person_and_organization, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, requirement_assigned_item); END_TYPE; TYPE action_method_items = SELECT ( product, product_definition_formation); END_TYPE; TYPE action_request_item = SELECT ( product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, property_definition, versioned_action_request); END_TYPE; TYPE ahead_or_behind = ENUMERATION OF ( ahead, exact, behind ); END_TYPE; TYPE amount_of_substance_measure = REAL; END_TYPE; TYPE angle_direction_reference_select = SELECT ( direction, curve, point_path); END_TYPE; TYPE angle_direction_reference_with_a2p3d_select = SELECT ( angle_direction_reference_select, axis2_placement_3d); END_TYPE; TYPE angle_relator = ENUMERATION OF ( equal, large, small ); END_TYPE; TYPE annotation_plane_element = SELECT ( draughting_callout, styled_item); END_TYPE; TYPE annotation_representation_select = SELECT ( presentation_area, presentation_view, symbol_representation); END_TYPE; TYPE annotation_symbol_occurrence_item = SELECT ( annotation_symbol, defined_symbol); END_TYPE; TYPE annotation_text_occurrence_item = SELECT ( text_literal, annotation_text, annotation_text_character, composite_text); END_TYPE; TYPE approval_item = SELECT ( action, action_directive, alternate_product_relationship, applied_action_assignment, applied_usage_right, assembly_component_usage_substitute, certification, configuration_effectivity, configuration_item, contract, date, directed_action, document, document_file, effectivity, executed_action, general_property_relationship, group, group_relationship, information_usage_right, product, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, representation, requirement_assignment, security_classification, shape_aspect_relationship, versioned_action_request); END_TYPE; 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_classification_item = SELECT ( action_directive, action_method, action_property, action_property_representation, action_relationship, action_request_solution, action_request_status, alternate_product_relationship, applied_action_assignment, applied_action_request_assignment, applied_approval_assignment, applied_certification_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, approval, approval_person_organization, approval_relationship, approval_status, certification, context_dependent_unit, contract, date_and_time_assignment, date_assignment, derived_unit, descriptive_representation_item, document_file, document_relationship, effectivity, event_occurrence_relationship, executed_action, general_property, general_property_relationship, group, group_relationship, information_right, information_usage_right, language, measure_representation_item, measure_with_unit, named_unit, organization_relationship, organizational_address, organizational_project_relationship, person_and_organization, person_and_organization_address, product, product_category, product_concept, product_concept_context, product_definition, product_definition_context, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, property_definition, property_definition_relationship, property_definition_representation, representation, representation_context, representation_item, security_classification, time_interval_relationship, uncertainty_measure_with_unit, usage_association, versioned_action_request); 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, information_right, information_usage_right, 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_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, usage_association); END_TYPE; 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 base_solid_select = SELECT ( solid_model, csg_primitive, boolean_result); WHERE WR1 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF)); END_TYPE; TYPE blend_end_condition_select = SELECT ( point_on_curve, edge_curve, vertex); END_TYPE; TYPE blend_radius_variation_type = ENUMERATION OF ( linear_blend, cubic_blend, unspecified_blend ); 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; TYPE camera_model_d3_multi_clipping_interection_select = SELECT ( camera_model_d3_multi_clipping_union, plane); END_TYPE; TYPE camera_model_d3_multi_clipping_union_select = SELECT ( camera_model_d3_multi_clipping_intersection, plane); END_TYPE; TYPE capacitance_measure = REAL; END_TYPE; TYPE category_usage_item = SELECT ( product_class); END_TYPE; TYPE cc_classified_item = SELECT ( assembly_component_usage, product_definition_formation); END_TYPE; TYPE cc_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 cc_specified_item = SELECT ( product_definition, shape_aspect); END_TYPE; TYPE celsius_temperature_measure = REAL; END_TYPE; TYPE central_or_parallel = ENUMERATION OF ( central, parallel ); END_TYPE; TYPE certification_item = SELECT ( alternate_product_relationship, make_from_usage_option, product_definition_formation, product_definition_formation_relationship); END_TYPE; 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_method_relationship, action_relationship); END_TYPE; TYPE characterized_definition = SELECT ( characterized_object, characterized_product_definition, shape_definition); END_TYPE; TYPE characterized_material_property = SELECT ( material_property_representation, product_material_composition_relationship); END_TYPE; TYPE characterized_product_composition_value = SELECT ( measure_with_unit); END_TYPE; TYPE characterized_product_definition = SELECT ( product_definition, product_definition_relationship); END_TYPE; TYPE class_usage_effectivity_context_item = SELECT ( product_definition); 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, characterized_class, characterized_object, class, classified_item, 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, information_right, information_usage_right, 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_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, usage_association, versioned_action_request); END_TYPE; TYPE classified_item = SELECT ( product, product_definition, product_definition_formation); END_TYPE; TYPE compound_item_definition = SELECT ( list_representation_item, set_representation_item); END_TYPE; TYPE conductance_measure = REAL; END_TYPE; TYPE configuration_design_item = SELECT ( product_definition, product_definition_formation); END_TYPE; TYPE configured_effectivity_context_item = SELECT ( product_concept_feature_association); END_TYPE; TYPE configured_effectivity_item = SELECT ( product_definition); END_TYPE; TYPE constructive_geometry_representation_or_shape_represenation = SELECT ( constructive_geometry_representation, shape_representation); END_TYPE; TYPE context_dependent_measure = REAL; END_TYPE; TYPE contract_item = SELECT ( action_directive, alternate_product_relationship, directed_action, executed_action, information_usage_right, organization, person_and_organization, product, product_definition_formation); END_TYPE; 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, curve_style_font_and_scaling); 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, curve_style_rendering); 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, action_directive, applied_action_assignment, applied_organization_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval_person_organization, certification, contract, directed_action, document, document_file, event_occurrence, executed_action, information_usage_right, organizational_project, product_definition, product_definition_formation, product_definition_relationship, rule_action, security_classification, versioned_action_request); END_TYPE; TYPE date_item = SELECT ( action, action_directive, applied_action_assignment, applied_organization_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval_person_organization, certification, contract, directed_action, document, document_file, event_occurrence, executed_action, information_usage_right, organizational_project, product_definition, product_definition_formation, product_definition_relationship, security_classification, versioned_action_request); END_TYPE; 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_symbol_select = SELECT ( pre_defined_symbol, externally_defined_symbol); END_TYPE; TYPE derived_property_select = SELECT ( property_definition, action_property); END_TYPE; TYPE description_attribute_select = SELECT ( action_request_solution, application_context, approval_role, configuration_design, date_role, date_time_role, context_dependent_shape_representation, effectivity, external_source, organization_role, person_and_organization_role, person_and_organization, 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; TYPE dimensional_characteristic = SELECT ( dimensional_location, dimensional_size); END_TYPE; TYPE direction_count_select = SELECT ( u_direction_count, v_direction_count); END_TYPE; TYPE document_identifier_assigned_item = SELECT ( document); END_TYPE; TYPE document_reference_item = SELECT ( action_method, applied_external_identification_assignment, assembly_component_usage, characterized_class, characterized_object, configuration_item, descriptive_representation_item, dimensional_size, executed_action, externally_defined_dimension_definition, externally_defined_item, group, group_relationship, information_right, information_usage_right, material_designation, measure_representation_item, product, product_category, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, property_definition, representation, representation_item, rule_set, shape_aspect, shape_aspect_relationship, usage_association, versioned_action_request); END_TYPE; TYPE dose_equivalent_measure = REAL; END_TYPE; TYPE draughting_callout_element = SELECT ( annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; TYPE draughting_model_item_association_select = SELECT ( annotation_occurrence, draughting_callout); END_TYPE; TYPE draughting_model_item_select = SELECT ( mapped_item, styled_item, axis2_placement, camera_model, draughting_callout); END_TYPE; TYPE draughting_titled_item = SELECT ( drawing_revision, drawing_sheet_revision); END_TYPE; TYPE effectivity_item = SELECT ( assembly_component_usage_substitute, product, product_definition, product_definition_formation, product_definition_relationship, product_definition_substitute); END_TYPE; TYPE electric_charge_measure = REAL; END_TYPE; TYPE electric_current_measure = REAL; END_TYPE; TYPE electric_potential_measure = REAL; END_TYPE; TYPE energy_measure = REAL; END_TYPE; TYPE event_occurrence_item = SELECT ( organizational_project); END_TYPE; TYPE external_identification_item = SELECT ( action_relationship, action_request_status, applied_organization_assignment, applied_person_and_organization_assignment, approval, approval_status, date_and_time_assignment, date_assignment, document_file, external_source, externally_defined_class, externally_defined_context_dependent_unit, externally_defined_conversion_based_unit, externally_defined_general_property, externally_defined_picture_representation_item, externally_defined_representation_item, organizational_address, product_definition, security_classification, trimmed_curve, versioned_action_request); END_TYPE; 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, text_font); END_TYPE; TYPE force_measure = REAL; END_TYPE; TYPE founded_item_select = SELECT ( founded_item, representation_item); END_TYPE; TYPE frequency_measure = REAL; END_TYPE; TYPE generalized_surface_select = SELECT ( surface, face_surface, surfaced_open_shell); END_TYPE; TYPE geometric_item_specific_usage_select = SELECT ( shape_aspect, shape_aspect_relationship); END_TYPE; TYPE geometric_set_select = SELECT ( point, curve, surface); END_TYPE; TYPE groupable_item = SELECT ( geometric_representation_item, group_relationship, mapped_item, package_product_concept_feature, product_concept_feature, product_definition, product_definition_formation, property_definition_representation, representation, representation_item, representation_relationship_with_transformation, shape_aspect, shape_aspect_relationship, shape_representation_relationship, 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, product_category, property_definition, shape_aspect, shape_aspect_relationship, application_context, group, organizational_project, representation); END_TYPE; TYPE identification_item = SELECT ( approval_status, characterized_class, class, configuration_item, contract, dimensional_size, document_file, general_property, group, group_relationship, information_right, information_usage_right, material_designation, organization, person_and_organization, product, product_category, product_class, product_concept, product_concept_feature, product_definition, product_definition_formation, product_identification, representation, rule_set, security_classification, security_classification_level, shape_aspect_relationship, shape_representation, usage_association); END_TYPE; TYPE identifier = STRING; END_TYPE; TYPE illuminance_measure = REAL; END_TYPE; TYPE inductance_measure = REAL; END_TYPE; TYPE instance_usage_context_select = SELECT ( product_definition_relationship, product_definition_usage); END_TYPE; TYPE invisibility_context = SELECT ( draughting_model, presentation_representation, presentation_set); END_TYPE; TYPE invisible_item = SELECT ( draughting_callout, presentation_layer_assignment, representation, styled_item); END_TYPE; TYPE ir_usage_item = action_items; WHERE wr1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURATION_EFFECTIVITY' IN TYPEOF(SELF)); 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_flux_measure = REAL; END_TYPE; TYPE luminous_intensity_measure = REAL; END_TYPE; TYPE magnetic_flux_density_measure = REAL; END_TYPE; TYPE magnetic_flux_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 ( absorbed_dose_measure, dose_equivalent_measure, radioactivity_measure, acceleration_measure, amount_of_substance_measure, area_measure, celsius_temperature_measure, context_dependent_measure, count_measure, descriptive_measure, capacitance_measure, electric_charge_measure, conductance_measure, electric_current_measure, electric_potential_measure, energy_measure, magnetic_flux_density_measure, force_measure, frequency_measure, illuminance_measure, inductance_measure, length_measure, luminous_flux_measure, luminous_intensity_measure, magnetic_flux_measure, mass_measure, numeric_measure, non_negative_length_measure, parameter_value, plane_angle_measure, positive_length_measure, positive_plane_angle_measure, positive_ratio_measure, power_measure, pressure_measure, ratio_measure, resistance_measure, solid_angle_measure, thermodynamic_temperature_measure, time_measure, velocity_measure, volume_measure); END_TYPE; TYPE mechanical_design_and_draughting_relationship_select = SELECT ( draughting_model, mechanical_design_geometric_presentation_representation, mechanical_design_presentation_representation_with_draughting, mechanical_design_shaded_presentation_representation, shape_representation); END_TYPE; TYPE mechanical_design_geometric_presentation_area_items = SELECT ( axis2_placement, mapped_item); END_TYPE; TYPE mechanical_design_geometric_presentation_representation_items = SELECT ( axis2_placement, camera_model_d3, mapped_item, styled_item); END_TYPE; TYPE message = STRING; 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; 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, information_right, information_usage_right, 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_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, usage_association); END_TYPE; TYPE name_attribute_select = SELECT ( action_request_solution, address, configuration_design, context_dependent_shape_representation, derived_unit, effectivity, person_and_organization, product_definition, product_definition_substitute, property_definition_representation); END_TYPE; TYPE name_item = SELECT ( assembly_component_usage, external_class_library, group, group_relationship, product, product_definition); END_TYPE; TYPE non_negative_length_measure = length_measure; WHERE WR1 : SELF >= 0.0; END_TYPE; TYPE nonnegative_integer = INTEGER; WHERE nonnegativity : SELF >= 0; END_TYPE; TYPE null_style = ENUMERATION OF ( null ); END_TYPE; TYPE numeric_measure = NUMBER; END_TYPE; TYPE organization_item = SELECT ( action, action_directive, alternate_product_relationship, applied_action_assignment, applied_classification_assignment, applied_identification_assignment, applied_security_classification_assignment, approval, assembly_component_usage_substitute, certification, class, configuration_item, contract, document_file, executed_action, general_property, information_usage_right, organizational_project, product, product_definition, product_definition_formation, product_definition_formation_relationship, property_definition, rule_action, security_classification, shape_representation, versioned_action_request); END_TYPE; TYPE orientation_basis_select = SELECT ( axis2_placement_3d, min_and_major_ply_orientation_basis); END_TYPE; TYPE parameter_value = REAL; END_TYPE; TYPE pcurve_or_surface = SELECT ( pcurve, surface); END_TYPE; TYPE person_and_organization_item = SELECT ( action, action_directive, alternate_product_relationship, applied_action_assignment, applied_classification_assignment, applied_identification_assignment, applied_security_classification_assignment, approval, assembly_component_usage_substitute, certification, configuration_item, contract, document_file, executed_action, general_property, information_usage_right, organizational_project, person_and_organization, product, product_definition, product_definition_formation, product_definition_formation_relationship, property_definition, rule_action, security_classification, shape_representation, versioned_action_request); END_TYPE; TYPE person_organization_select = SELECT ( person, organization, person_and_organization); END_TYPE; TYPE picture_representation_item_select = SELECT ( styled_item, planar_box, axis2_placement_2d); END_TYPE; TYPE plane_angle_measure = REAL; END_TYPE; TYPE plane_or_planar_box = SELECT ( plane, planar_box); END_TYPE; TYPE point_and_vector_member = SELECT ( point, direction); END_TYPE; TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member; END_TYPE; TYPE point_path_members = LIST [1:?] OF point_and_vector; END_TYPE; TYPE positive_integer = nonnegative_integer; WHERE positivity : SELF > 0; END_TYPE; TYPE positive_length_measure = non_negative_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 power_measure = REAL; END_TYPE; TYPE preferred_surface_curve_representation = ENUMERATION OF ( curve_3d, pcurve_s1, pcurve_s2 ); END_TYPE; TYPE presentable_text = STRING; WHERE WR1 : control_characters_free(SELF); END_TYPE; TYPE presentation_representation_select = SELECT ( presentation_representation, presentation_set); END_TYPE; 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 presented_item_select = SELECT ( action, action_method, action_relationship, product_concept, product_concept_feature, product_concept_feature_category, product_definition, product_definition_formation, product_definition_relationship); END_TYPE; TYPE pressure_measure = REAL; END_TYPE; TYPE product_definition_or_assembly_relationship = SELECT ( assembly_component_usage, product_definition); END_TYPE; TYPE product_definition_or_breakdown_element_usage = SELECT ( product_definition, product_definition_usage); END_TYPE; TYPE product_definition_or_product_definition_relationship = SELECT ( product_definition, product_definition_usage); END_TYPE; TYPE product_or_formation_or_definition = SELECT ( product, product_definition_formation, product_definition); END_TYPE; TYPE project_item = SELECT ( executed_action, product_concept); END_TYPE; TYPE radioactivity_measure = REAL; END_TYPE; TYPE ratio_measure = REAL; END_TYPE; TYPE rendering_properties_select = SELECT ( surface_style_reflectance_ambient, surface_style_transparent); END_TYPE; TYPE represented_definition = SELECT ( general_property, property_definition, property_definition_relationship, shape_aspect, shape_aspect_relationship); END_TYPE; TYPE requirement_assigned_item = SELECT ( configuration_item, descriptive_representation_item, product, product_class, product_definition, product_definition_formation, product_definition_relationship, representation, shape_aspect); END_TYPE; TYPE requirement_satisfaction_item = SELECT ( requirement_assigned_item); END_TYPE; TYPE requirement_source_item = SELECT ( characterized_object, group, group_relationship, product, product_definition, product_definition_formation, product_definition_relationship, shape_aspect); END_TYPE; TYPE resistance_measure = REAL; 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 rule_superseded_item = SELECT ( product_definition_formation); END_TYPE; TYPE second_in_minute = REAL; WHERE WR1 : { 0 <= SELF <= 60.0 }; END_TYPE; TYPE security_classification_item = SELECT ( assembly_component_usage, document, document_file, make_from_usage_option, product, product_definition, product_definition_formation, product_definition_usage); END_TYPE; 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 shading_curve_method = ENUMERATION OF ( constant_colour, linear_colour ); END_TYPE; TYPE shading_surface_method = ENUMERATION OF ( constant_shading, colour_shading, dot_shading, normal_shading ); END_TYPE; TYPE shape_definition = SELECT ( product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; 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 sketch_basis_select = SELECT ( curve_bounded_surface, face_surface); END_TYPE; TYPE solid_angle_measure = REAL; END_TYPE; TYPE source = ENUMERATION OF ( made, bought, not_known ); END_TYPE; TYPE source_item = SELECT ( identifier, message); END_TYPE; TYPE start_request_item = SELECT ( product_definition_formation); END_TYPE; TYPE string_representation_item_select = SELECT ( descriptive_representation_item, included_text_block, structured_text_composition); END_TYPE; TYPE style_context_select = SELECT ( group, presentation_layer_assignment, presentation_set, representation, representation_item, representation_relationship); END_TYPE; TYPE surface_side = ENUMERATION OF ( positive, negative, both ); END_TYPE; TYPE surface_side_style_select = SELECT ( surface_side_style, pre_defined_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, surface_style_rendering); END_TYPE; TYPE symbol_style_select = SELECT ( symbol_colour); END_TYPE; 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, composite_text, text_literal); END_TYPE; TYPE text_path = ENUMERATION OF ( left, right, up, down ); END_TYPE; TYPE text_string_representation_item = SELECT ( text_literal, annotation_text, annotation_text_character, composite_text, axis2_placement); END_TYPE; TYPE thermodynamic_temperature_measure = REAL; END_TYPE; TYPE time_interval_item = SELECT ( action, time_interval_based_effectivity); END_TYPE; 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 trim_condition_select = SELECT ( length_measure, plane_angle_measure, generalized_surface_select, solid_model); END_TYPE; TYPE trim_intent = ENUMERATION OF ( blind, offset, through_all, unspecified, up_to_next ); 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; TYPE velocity_measure = REAL; END_TYPE; TYPE volume_measure = REAL; END_TYPE; TYPE week_in_year_number = INTEGER; WHERE WR1 : { 1 <= SELF <= 53 }; END_TYPE; TYPE work_item = SELECT ( product_definition_formation); END_TYPE; TYPE year_number = INTEGER; END_TYPE; ENTITY absorbed_dose_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY absorbed_dose_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.gray); END_ENTITY; ENTITY abstract_variable SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item); END_ENTITY; ENTITY acceleration_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACCELERATION_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY acceleration_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensional_exponents ( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 ); END_ENTITY; 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_method_assignment ABSTRACT SUPERTYPE; assigned_action_method : action_method; role : action_method_role; END_ENTITY; ENTITY action_method_relationship; name : label; description : OPTIONAL text; relating_method : action_method; related_method : action_method; END_ENTITY; ENTITY action_method_role; name : label; description : OPTIONAL 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 angle_direction_reference SUBTYPE OF (representation_item_relationship, geometric_representation_item); SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; WHERE WR1 : ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF(relating_representation_item))) OR (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(relating_representation_item)))); 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); SELF\styled_item.item : curve; END_ENTITY; ENTITY annotation_fill_area SUBTYPE OF (geometric_representation_item); boundaries : SET [1:?] OF curve; WHERE WR1 : (SELF\geometric_representation_item.dim = 3) OR (SIZEOF (QUERY (curve <* SELF.boundaries | NOT ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' IN TYPEOF (curve)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE' IN TYPEOF (curve)) OR ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (curve)) AND (curve\b_spline_curve.closed_curve = TRUE) ) OR ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (curve)) AND (curve\composite_curve.closed_curve = TRUE) ) OR ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (curve)) AND (curve\polyline.points[LOINDEX(curve\polyline.points)] = curve\polyline.points[HIINDEX(curve\polyline.points)]) ) ) )) = 0); END_ENTITY; ENTITY annotation_fill_area_occurrence SUBTYPE OF (annotation_occurrence); fill_style_target : point; SELF\styled_item.item : annotation_fill_area; END_ENTITY; ENTITY annotation_occurrence SUPERTYPE OF (ONEOF (annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence)) SUBTYPE OF (styled_item); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF (SELF); WR2 : SIZEOF (QUERY (reps <* using_representations(SELF) | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps)))) = 0; 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_plane SUBTYPE OF (annotation_occurrence, geometric_representation_item); elements : OPTIONAL SET [1:?] OF annotation_plane_element; SELF\styled_item.item : plane_or_planar_box; WHERE WR1 : SELF\geometric_representation_item.dim = 3; WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\styled_item.item\planar_box.placement)); WR3 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'CURVE_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANE' IN TYPEOF(SELF\styled_item.item)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'FILL_AREA_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))); WR4 : (SIZEOF(SELF\styled_item.styles) = 1) AND (SIZEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles) = 1); 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); SELF\mapped_item.mapping_source : symbol_representation_map; SELF\mapped_item.mapping_target : symbol_target; WHERE WR1 : '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); SELF\styled_item.item : annotation_symbol_occurrence_item; END_ENTITY; ENTITY annotation_text SUBTYPE OF (mapped_item); SELF\mapped_item.mapping_target : axis2_placement; WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF( SELF\mapped_item.mapping_source.mapped_representation); WR2 : '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; SELF\mapped_item.mapping_target : axis2_placement; 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.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF (SELF); END_ENTITY; ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); SELF\styled_item.item : annotation_text_occurrence_item; 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_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_method_assignment SUBTYPE OF (action_method_assignment); items : SET [1:?] OF action_method_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_attribute_classification_assignment SUBTYPE OF (attribute_classification_assignment); items : SET [1:?] OF attribute_classification_item; SELF\attribute_classification_assignment.assigned_class : class; 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_presented_item SUBTYPE OF (presented_item); items : SET [1:?] OF presented_item_select; 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 applied_usage_right SUBTYPE OF (applied_action_assignment); SELF\applied_action_assignment.items : SET [1:?] OF ir_usage_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 (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensional_exponents ( 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 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 assigned_requirement SUBTYPE OF (group_assignment); items : SET [1:1] OF product_definition; SELF\group_assignment.assigned_group : requirement_assignment; END_ENTITY; ENTITY atomic_formula SUBTYPE OF (compound_representation_item); END_ENTITY; ENTITY attribute_assertion SUBTYPE OF (fact_type, property_definition_representation, representation); 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); items : SET [1:?] OF attribute_language_item; SELF\attribute_classification_assignment.assigned_class : language; 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 auxiliary_geometric_representation_item SUBTYPE OF (geometric_representation_item, variational_representation_item); 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 control_points : ARRAY [0:upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list,0, upper_index_on_control_points); upper_index_on_control_points : INTEGER := (SIZEOF(control_points_list) - 1); 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 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); u_upper : INTEGER := SIZEOF(control_points_list) - 1; v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; 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 back_chaining_rule SUBTYPE OF (rule_definition); END_ENTITY; ENTITY back_chaining_rule_body SUBTYPE OF (property_definition, property_definition_representation, representation); END_ENTITY; ENTITY background_colour SUBTYPE OF (colour); presentation : area_or_view; UNIQUE UR1 : presentation; END_ENTITY; ENTITY beveled_sheet_representation SUBTYPE OF (shape_representation); END_ENTITY; ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; ENTITY binary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:2] OF generic_expression; END_ENTITY; ENTITY binary_numeric_expression ABSTRACT SUPERTYPE SUBTYPE OF (numeric_expression, binary_generic_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF numeric_expression; END_ENTITY; ENTITY binary_representation_item SUBTYPE OF (representation_item); binary_value : BINARY; 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_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_boolean_expression, multiple_arity_boolean_expression, comparison_expression, interval_expression)) SUBTYPE OF (expression); END_ENTITY; ENTITY boolean_literal SUBTYPE OF (simple_boolean_expression, generic_literal); the_value : BOOLEAN; END_ENTITY; ENTITY boolean_representation_item SUBTYPE OF (representation_item, boolean_literal); 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 breakdown_context SUBTYPE OF (product_definition_relationship); END_ENTITY; ENTITY breakdown_element_group_assignment SUBTYPE OF (group_assignment); items : SET [1:1] OF product_definition_or_breakdown_element_usage; SELF\group_assignment.assigned_group : product_definition_element_relationship; END_ENTITY; ENTITY breakdown_element_realization SUBTYPE OF (characterized_object, product_definition_element_relationship); END_ENTITY; ENTITY breakdown_element_usage SUBTYPE OF (product_definition_relationship); END_ENTITY; ENTITY breakdown_of SUBTYPE OF (product_definition_relationship); END_ENTITY; ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; END_ENTITY; ENTITY bytes_representation_item SUBTYPE OF (binary_representation_item); DERIVE no_of_bytes : INTEGER := BLENGTH(SELF\binary_representation_item.binary_value) DIV 8; WHERE WR1 : BLENGTH(SELF\binary_representation_item.binary_value) MOD 8 = 0; 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); SELF\mapped_item.mapping_source : camera_usage; SELF\mapped_item.mapping_target : planar_box; WHERE WR1 : '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 ABSTRACT SUPERTYPE 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_model_d3_multi_clipping SUBTYPE OF (camera_model_d3); shape_clipping : SET [1:?] OF camera_model_d3_multi_clipping_interection_select; END_ENTITY; ENTITY camera_model_d3_multi_clipping_intersection SUBTYPE OF (geometric_representation_item); shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_interection_select; END_ENTITY; ENTITY camera_model_d3_multi_clipping_union SUBTYPE OF (geometric_representation_item); shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_union_select; END_ENTITY; ENTITY camera_model_d3_with_hlhsr SUBTYPE OF (camera_model_d3); hidden_line_surface_removal : BOOLEAN; END_ENTITY; ENTITY camera_model_with_light_sources SUBTYPE OF (camera_model_d3); sources : SET [1:?] OF light_source; END_ENTITY; ENTITY camera_usage SUBTYPE OF (representation_map); SELF\representation_map.mapping_origin : camera_model; WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\representation_map.mapped_representation)); END_ENTITY; ENTITY capacitance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY capacitance_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.farad); 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 cc_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 cc_classified_item; END_ENTITY; ENTITY cc_design_specification_reference SUBTYPE OF (document_reference); items : SET [1:?] OF cc_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_font_usage; character : generic_character_glyph_symbol; font : text_font; END_ENTITY; ENTITY character_glyph_style_outline SUBTYPE OF (founded_item); outline_style : curve_style; END_ENTITY; ENTITY character_glyph_style_stroke SUBTYPE OF (founded_item); stroke_style : curve_style; END_ENTITY; ENTITY character_glyph_symbol SUBTYPE OF (generic_character_glyph_symbol); character_box : planar_extent; baseline_ratio : ratio_measure; DERIVE box_height : length_measure := character_box.size_in_y; WHERE WR1 : {0.0 <= baseline_ratio <= 1.0}; WR2 : item_in_context(SELF.character_box, SELF\representation.context_of_items); WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (SELF.box_height); END_ENTITY; ENTITY character_glyph_symbol_outline SUBTYPE OF (character_glyph_symbol); outlines : SET [1:?] OF annotation_fill_area; WHERE WR1 : SELF.outlines <= SELF\representation.items; END_ENTITY; ENTITY character_glyph_symbol_stroke SUBTYPE OF (character_glyph_symbol); strokes : SET [1:?] OF curve; WHERE WR1 : SELF.strokes <= SELF\representation.items; END_ENTITY; ENTITY characteristic_data_column_header SUBTYPE OF (general_property); END_ENTITY; ENTITY characteristic_data_column_header_link SUBTYPE OF (general_property_relationship); END_ENTITY; ENTITY characteristic_data_table_header SUBTYPE OF (general_property); END_ENTITY; ENTITY characteristic_data_table_header_decomposition SUBTYPE OF (general_property_relationship); END_ENTITY; ENTITY characteristic_type SUBTYPE OF (group); END_ENTITY; ENTITY characterized_class SUBTYPE OF (characterized_object, class); 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 class_system SUBTYPE OF (group); END_ENTITY; ENTITY class_usage_effectivity_context_assignment SUBTYPE OF (effectivity_context_assignment); items : SET [1:?] OF class_usage_effectivity_context_item; WHERE WR1 : SELF.role.name = 'class usage influence'; WR2 : SIZEOF( QUERY( i <* SELF.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) )) = 0; WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF.assigned_effectivity_assignment)) AND (SIZEOF(TYPEOF(SELF.assigned_effectivity_assignment.assigned_effectivity) ) = 1) AND (SELF.assigned_effectivity_assignment.assigned_effectivity.id = 'class usage') AND (SIZEOF( QUERY( i <* SELF.assigned_effectivity_assignment\applied_effectivity_assignment.items | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) )) = 0); 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\composite_shape_aspect.component_relationships) = 2; WR2 : SIZEOF (QUERY ( sar <* SELF\composite_shape_aspect.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 comparison_expression ABSTRACT SUPERTYPE SUBTYPE OF (boolean_expression, binary_generic_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF expression; WHERE WR1 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2]))) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2]))) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2]))); END_ENTITY; ENTITY complex_clause SUBTYPE OF (compound_representation_item); END_ENTITY; ENTITY complex_conjunctive_clause SUBTYPE OF (complex_clause); END_ENTITY; ENTITY complex_disjunctive_clause SUBTYPE OF (complex_clause); END_ENTITY; ENTITY complex_shelled_solid SUBTYPE OF (shelled_solid); thickened_face_list : LIST [1:?] OF SET [1:?] OF face_surface; thickness_list : LIST [1:?] OF length_measure; WHERE WR1 : SIZEOF(thickened_face_list) = SIZEOF(thickness_list); WR2 : SIZEOF(QUERY(q <* thickness_list | (q = 0))) = 0; END_ENTITY; ENTITY composite_assembly_definition SUBTYPE OF (product_definition); WHERE WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF (pdr))) = 1; END_ENTITY; ENTITY composite_assembly_sequence_definition SUBTYPE OF (product_definition); WHERE WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF (pdr))) > 0; END_ENTITY; ENTITY composite_assembly_table SUBTYPE OF (part_laminate_table); END_ENTITY; ENTITY composite_curve SUBTYPE OF (bounded_curve); segments : LIST [1:?] OF composite_curve_segment; self_intersect : LOGICAL; DERIVE closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; n_segments : INTEGER := SIZEOF(segments); 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_material_designation SUBTYPE OF (material_designation); 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_sheet_representation SUBTYPE OF (shape_representation); WHERE WR1 : SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF (SELF)) = 1; 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 SUPERTYPE OF (ONEOF (point_and_vector, point_path, row_representation_item, table_representation_item)) SUBTYPE OF (representation_item); item_element : compound_item_definition; END_ENTITY; ENTITY compound_shape_representation SUBTYPE OF (shape_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 ( SELF.context_of_items\ geometric_representation_context.coordinate_space_dimension =3 ); WR2 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' , '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 ( cbsr_i ) ) <>1 ) ) =0; WR3 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM']* TYPEOF ( cbsr_i ) ) =1 ) ) >0; WR4 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM' IN TYPEOF ( cbsr_i ) ) AND ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'COMPOUND_SHAPE_REPRESENTATION' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION']* TYPEOF ( cbsr_i\ mapped_item.mapping_source ) ) <>1 ) ) ) =0; 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 concept_feature_operator; name : label; description : OPTIONAL text; END_ENTITY; ENTITY concept_feature_relationship; name : label; description : OPTIONAL text; relating_product_concept_feature : product_concept_feature; related_product_concept_feature : product_concept_feature; END_ENTITY; ENTITY concept_feature_relationship_with_condition SUBTYPE OF (concept_feature_relationship); conditional_operator : concept_feature_operator; END_ENTITY; ENTITY conditional_concept_feature SUBTYPE OF (product_concept_feature); condition : concept_feature_relationship_with_condition; END_ENTITY; ENTITY conductance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY conductance_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.siemens); END_ENTITY; ENTITY configurable_item SUBTYPE OF (configuration_item); item_concept_feature : SET [1:?] OF product_concept_feature_association; END_ENTITY; ENTITY configuration_design; configuration : configuration_item; design : configuration_design_item; DERIVE description : text := get_description_value (SELF); name : label := get_name_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, SELF\product_definition_effectivity.usage, SELF\effectivity.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 configuration_item_hierarchical_relationship SUBTYPE OF (configuration_item_relationship); END_ENTITY; ENTITY configuration_item_relationship; name : label; description : OPTIONAL text; relating_configuration_item : configuration_item; related_configuration_item : configuration_item; END_ENTITY; ENTITY configuration_item_revision_sequence SUBTYPE OF (configuration_item_relationship); END_ENTITY; ENTITY configured_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF configured_effectivity_item; WHERE WR1 : (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity) ) = 1) AND (SELF.assigned_effectivity.id = 'configuration validity'); WR2 : SIZEOF(SELF.items) = 1; WR3 : SIZEOF( QUERY( i <* SELF.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) OR NOT (i\product_definition.frame_of_reference.name IN ['conceptual definition','part occurrence', 'functional definition','alternative definition']) )) = 0; WR4 : SELF.role.name IN ['design', 'usage']; WR5 : (SELF.role.name <> 'design') OR (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'part occurrence') )) = 0); WR6 : (SELF.role.name <> 'usage') OR (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'conceptual definition') )) = 0); WR7 : SELF.role.description IN ['exception', 'inherited', 'local']; WR8 : SIZEOF( QUERY( x <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(x) )) = 1; END_ENTITY; ENTITY configured_effectivity_context_assignment SUBTYPE OF (effectivity_context_assignment); items : SET [1:?] OF configured_effectivity_context_item; SELF\effectivity_context_assignment.assigned_effectivity_assignment : configured_effectivity_assignment; WHERE WR1 : SIZEOF(SELF.items) = 1; END_ENTITY; ENTITY conic SUPERTYPE OF (ONEOF (circle, ellipse, hyperbola, parabola)) SUBTYPE OF (curve); position : axis2_placement; END_ENTITY; ENTITY conical_stepped_hole_transition SUBTYPE OF (geometric_representation_item); transition_number : positive_integer; cone_apex_angle : plane_angle_measure; cone_base_radius : positive_length_measure; 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 connected_face_sub_set SUBTYPE OF (connected_face_set); parent_face_set : connected_face_set; 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); SELF\representation_relationship.rep_1 : constructive_geometry_representation_or_shape_represenation; SELF\representation_relationship.rep_2 : constructive_geometry_representation; 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 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY; ENTITY contact_ratio_representation SUBTYPE OF (representation); WHERE WR1 : ( SIZEOF ( SELF.items ) =1 ) AND ( SIZEOF ( QUERY ( i <* SELF.items | ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) AND ( i.name = 'ratio value' ) ) ) =1 ); WR2 : ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | pdr. name = 'contact ratio reference' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | ( pdr. name = 'contact ratio reference' ) AND ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_DEFINITION' IN TYPEOF ( pdr. definition.definition ) ) ) ) =1 ); WR3 : ( SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr. definition , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND ( gpa. base_definition.name ='surface_condition' ) ) ) =1 ) ) =1 ); END_ENTITY; ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; ENTITY context_dependent_over_riding_styled_item SUBTYPE OF (over_riding_styled_item); style_context : LIST [1:?] OF style_context_select; WHERE WR1 : (SIZEOF(QUERY(sc <* SELF.style_context | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc)))= 1) OR (SIZEOF(QUERY(sc <* SELF.style_context | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(sc)) )) = SIZEOF(style_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_relationship; id : identifier; name : label; description : OPTIONAL text; relating_contract : contract; related_contract : contract; END_ENTITY; ENTITY contract_type; description : label; END_ENTITY; ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; WHERE WR1 : SELF\named_unit.dimensions = derive_dimensional_exponents(conversion_factor\measure_with_unit.unit_component); 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 currency ABSTRACT SUPERTYPE OF (ONEOF (externally_defined_currency, iso4217_currency)) SUBTYPE OF (context_dependent_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 = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0)); END_ENTITY; ENTITY currency_measure_with_unit SUBTYPE OF (measure_with_unit); SELF\measure_with_unit.unit_component : currency; 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 SUBTYPE OF (founded_item); name : label; curve_font : curve_font_or_scaled_curve_font_select; curve_width : size_select; curve_colour : colour; END_ENTITY; ENTITY curve_style_font SUBTYPE OF (founded_item); name : label; pattern_list : LIST [1:?] OF curve_style_font_pattern; END_ENTITY; ENTITY curve_style_font_and_scaling SUBTYPE OF (founded_item); name : label; curve_font : curve_style_font_select; curve_font_scaling : REAL; END_ENTITY; ENTITY curve_style_font_pattern SUBTYPE OF (founded_item); visible_segment_length : positive_length_measure; invisible_segment_length : positive_length_measure; END_ENTITY; ENTITY curve_style_rendering; rendering_method : shading_curve_method; rendering_properties : surface_rendering_properties; END_ENTITY; ENTITY curve_swept_solid_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.SWEPT_AREA_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_DISK_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'] * TYPEOF(it)) = 1))) = 0; WR2 : SIZEOF (QUERY (it <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_AREA_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_DISK_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; WR3 : 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.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation)))) = 0; WR4 : SIZEOF (QUERY (scsas <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF(it)) | NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = 0; 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 data_environment; name : label; description : text; elements : SET [1:?] OF property_definition_representation; END_ENTITY; ENTITY date SUPERTYPE OF (ONEOF (calendar_date, ordinal_date, week_of_year_and_day_date, year_month)); 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_representation_item SUBTYPE OF (representation_item, date); 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_representation_item SUBTYPE OF (representation_item, date_and_time); 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 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMMON_DATUM' IN TYPEOF(SELF)) XOR ((SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_FEATURE' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) = 1) XOR (SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_TARGET' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) >= 1)); END_ENTITY; ENTITY datum_feature SUBTYPE OF (shape_aspect); INVERSE feature_basis_relationship: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1 : SIZEOF(QUERY(sar <* SELF\datum_feature.feature_basis_relationship | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect)))) = 1; 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: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1 : SIZEOF(QUERY(sar <* SELF\datum_target.target_basis_relationship | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF (sar\shape_aspect_relationship.related_shape_aspect)))) = 1; 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_symbol SUBTYPE OF (geometric_representation_item); definition : defined_symbol_select; target : symbol_target; 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 definitional_representation_relationship SUBTYPE OF (representation_relationship); WHERE WR1 : acyclic_representation_relationship(SELF, [SELF\representation_relationship.rep_2], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION'); END_ENTITY; ENTITY definitional_representation_relationship_with_same_context SUBTYPE OF (definitional_representation_relationship); WHERE WR1 : SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.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 SUPERTYPE OF (ONEOF (absorbed_dose_unit, acceleration_unit, radioactivity_unit, area_unit, capacitance_unit, dose_equivalent_unit, electric_charge_unit, conductance_unit, electric_potential_unit, energy_unit, magnetic_flux_density_unit, force_unit, frequency_unit, illuminance_unit, inductance_unit, magnetic_flux_unit, power_unit, pressure_unit, resistance_unit, velocity_unit, volume_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 SUPERTYPE OF (ONEOF (tagged_text_item, uniform_resource_identifier)) 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 dielectric_constant_measure_with_unit SUBTYPE OF (ratio_measure_with_unit); END_ENTITY; ENTITY dimension_callout SUBTYPE OF (draughting_callout); WHERE WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF (SELF))) XOR (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN (TYPEOF(dce_1))))) = 0); WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF (SELF))) XOR (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(dce_1))))) = 0); WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF (SELF))) XOR (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(dce_1))))) = 0); 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\dimension_curve_terminator.role = dimension_extent_usage.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\dimension_curve_terminator.role = dimension_extent_usage.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_curve_terminator_to_projection_curve_associativity SUBTYPE OF (annotation_occurrence_associativity); SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve; SELF\annotation_occurrence_relationship.relating_annotation_occurrence : dimension_curve_terminator; 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_identifier SUBTYPE OF (group); UNIQUE UR1: SELF\group.name, SELF\group.description; END_ENTITY; ENTITY document_identifier_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF document_identifier_assigned_item; SELF\group_assignment.assigned_group : document_identifier; 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 dose_equivalent_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY dose_equivalent_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.sievert); END_ENTITY; ENTITY double_offset_shelled_solid SUBTYPE OF (shelled_solid); thickness2 : length_measure; WHERE WR1 : thickness2 <> 0; WR2 : SELF\shelled_solid.thickness <> thickness2; END_ENTITY; ENTITY draped_defined_transformation SUBTYPE OF (transformation_with_derived_angle); END_ENTITY; ENTITY draughting_annotation_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1 : (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 : (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 : (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 : (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 : (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 : (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 : (NOT('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 : (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 : (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 : (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 : 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 : 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 : (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 : (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 : (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 : 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 : 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 : 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 : 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 : 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 SUPERTYPE OF ((ONEOF (datum_feature_callout, datum_target_callout, dimension_curve_directed_callout, draughting_elements, geometrical_tolerance_callout, leader_directed_callout, projection_directed_callout, structured_dimension_callout) ANDOR surface_condition_callout)) SUBTYPE OF (geometric_representation_item); contents : SET [1:?] OF draughting_callout_element; WHERE WR1 : (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) = 0) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(l_1)))) = 0) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(l_1)))) = 0) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF))); 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 (SIZEOF (QUERY (con <* SELF.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN TYPEOF (con)))) <= 2); WR3 : SIZEOF (QUERY (rc <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND (rc.name = 'primary') )) <= 1; WR4 : SIZEOF (QUERY (rc <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND (rc.name = 'secondary') )) <= 1; WR5 : SIZEOF (QUERY (sec <* QUERY (rc <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND (rc.name = 'secondary') ) | NOT (SIZEOF (QUERY (prim <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (prim)) AND (prim.name = 'primary') )) = 1))) = 0; END_ENTITY; ENTITY draughting_model SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF draughting_model_item_select; UNIQUE UR1: SELF\representation.name; WHERE WR1 : 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 ( 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.DRAUGHTING_MODEL'] * TYPEOF (mi\mapped_item.mapping_source. mapped_representation)) = 1 ))) = 0; WR2 : SIZEOF (QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(si\styled_item.item))) | (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\mapped_item. mapping_source.mapped_representation)) AND (SIZEOF (QUERY (sty <* smi\styled_item.styles | (NOT (SIZEOF (QUERY (psa <* sty.styles | (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF(psa))))) = 1 )))) = 1))) )) = 0; END_ENTITY; ENTITY draughting_model_item_association SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition : shape_definition; SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; SELF\item_identified_representation_usage.used_representation : draughting_model; END_ENTITY; ENTITY draughting_pre_defined_colour SUBTYPE OF (pre_defined_colour); WHERE WR1 : SELF.name IN ['red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'black', 'white']; END_ENTITY; ENTITY draughting_pre_defined_curve_font SUBTYPE OF (pre_defined_curve_font); WHERE WR1 : SELF.name IN ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted']; END_ENTITY; ENTITY draughting_pre_defined_text_font SUBTYPE OF (pre_defined_text_font); WHERE WR1 : SELF.name[1:8] = 'ISO 3098'; END_ENTITY; ENTITY draughting_subfigure_representation SUBTYPE OF (symbol_representation); WHERE WR1 : SIZEOF (QUERY (item <* SELF\representation.items | NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT'] * TYPEOF (item)) = 1))) = 0; WR2 : SIZEOF (QUERY (item <* SELF\representation.items | SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF (item)) = 1)) >= 1; WR3 : SIZEOF (QUERY (srm <* QUERY (rm <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm))) | NOT (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) | NOT (SIZEOF (QUERY (aso <* USEDIN (a_s, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'STYLED_ITEM.ITEM') | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0; WR4 : NOT (acyclic_mapped_item_usage (SELF)); WR5 : SIZEOF (SELF.context_of_items.representations_in_context) = 1; END_ENTITY; ENTITY draughting_symbol_representation SUBTYPE OF (symbol_representation); UNIQUE UR1: SELF\representation.name; WHERE WR1 : SIZEOF (QUERY (item <* SELF\representation.items | NOT (SIZEOF (TYPEOF (item) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_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.ANNOTATION_TEXT_OCCURRENCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT']) = 1) )) = 0; WR2 : SIZEOF (QUERY (item <* SELF\representation.items | (SIZEOF (TYPEOF (item) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_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.ANNOTATION_TEXT_OCCURRENCE']) = 1) )) >= 1; WR3 : SIZEOF (QUERY (item <* SELF\representation.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF (item))) = 0; WR4 : SIZEOF (QUERY (srm <* QUERY (rm <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm))) | (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) | NOT (SIZEOF (QUERY(aso <* USEDIN(a_s, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'STYLED_ITEM.ITEM') | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(aso)) )) = 0) )) = 0) )) > 0; WR5 : NOT (acyclic_mapped_item_usage (SELF)); WR6 : SIZEOF (SELF.context_of_items.representations_in_context) = 1; END_ENTITY; ENTITY draughting_text_literal_with_delineation SUBTYPE OF (text_literal_with_delineation); WHERE WR1 : SELF.delineation IN ['underline', 'overline']; END_ENTITY; ENTITY draughting_title; items : SET [1:?] OF draughting_titled_item; language : label; contents : text; END_ENTITY; ENTITY drawing_definition; drawing_number : identifier; drawing_type : OPTIONAL label; END_ENTITY; ENTITY drawing_revision SUBTYPE OF (presentation_set); revision_identifier : identifier; drawing_identifier : drawing_definition; intended_scale : OPTIONAL text; UNIQUE UR1 : revision_identifier, drawing_identifier; END_ENTITY; ENTITY drawing_revision_sequence; predecessor : drawing_revision; successor : drawing_revision; WHERE WR1 : predecessor :<>: successor; END_ENTITY; ENTITY drawing_sheet_revision SUBTYPE OF (presentation_area); revision_identifier : identifier; WHERE WR1 : SIZEOF( QUERY(item <* SELF\representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN (TYPEOF(item))) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN (TYPEOF(item\mapped_item.mapping_source.mapped_representation)))))=0; END_ENTITY; ENTITY drawing_sheet_revision_sequence SUBTYPE OF (representation_relationship); WHERE WR1 : SELF\representation_relationship.rep_1 :<>: SELF\representation_relationship.rep_2; WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF (SELF\representation_relationship.rep_1); WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF (SELF\representation_relationship.rep_2); END_ENTITY; ENTITY drawing_sheet_revision_usage SUBTYPE OF (area_in_set); sheet_number : identifier; UNIQUE UR1: sheet_number, SELF\area_in_set.in_set; WHERE WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\area_in_set.area)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_REVISION' IN TYPEOF (SELF\area_in_set.in_set)); END_ENTITY; ENTITY edge SUPERTYPE OF (ONEOF (edge_curve, oriented_edge, subedge)) SUBTYPE OF (topological_representation_item); edge_start : vertex; edge_end : vertex; END_ENTITY; ENTITY edge_based_wireframe_model SUBTYPE OF (geometric_representation_item); ebwm_boundary : SET [1:?] OF connected_edge_set; END_ENTITY; ENTITY edge_based_wireframe_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.EDGE_BASED_WIREFRAME_MODEL', '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.EDGE_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1; WR3 : SIZEOF ( QUERY ( ebwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF ( QUERY ( edges <* eb.ces_edges| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (edges)) )) = 0) )) = 0) )) = 0; WR4 : SIZEOF ( QUERY ( ebwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF ( QUERY ( pline_edges <* QUERY ( edges <* eb.ces_edges| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (edges\edge_curve.edge_geometry)) )| NOT ( SIZEOF (pline_edges\edge_curve.edge_geometry\polyline.points) > 2) )) = 0) )) = 0) )) = 0; WR5 : SIZEOF ( QUERY ( ebwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF ( QUERY ( edges <* eb.ces_edges| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_end))) )) = 0) )) = 0) )) = 0; WR6 : SIZEOF ( QUERY ( ebwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF ( QUERY ( edges <* eb.ces_edges| NOT valid_wireframe_edge_curve(edges\edge_curve.edge_geometry) )) = 0) )) = 0) )) = 0; WR7 : SIZEOF ( QUERY ( ebwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF ( QUERY ( edges <* eb.ces_edges| NOT (valid_wireframe_vertex_point(edges.edge_start\vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(edges.edge_end\vertex_point.vertex_geometry)) )) = 0) )) = 0) )) = 0; WR8 : 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.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; WR9 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; END_ENTITY; ENTITY edge_blended_solid ABSTRACT SUPERTYPE OF ((track_blended_solid ANDOR ONEOF (solid_with_constant_radius_edge_blend, solid_with_variable_radius_edge_blend, solid_with_chamfered_edges))) SUBTYPE OF (modified_solid); blended_edges : LIST [1:?] OF UNIQUE edge_curve; END_ENTITY; ENTITY edge_curve SUBTYPE OF (edge, geometric_representation_item); edge_geometry : curve; same_sense : BOOLEAN; END_ENTITY; ENTITY edge_loop SUBTYPE OF (loop, path); DERIVE ne : INTEGER := SIZEOF(SELF\path.edge_list); WHERE WR1 : (SELF\path.edge_list[1].edge_start) :=: (SELF\path.edge_list[ne].edge_end); END_ENTITY; ENTITY effectivity SUPERTYPE OF (ONEOF (serial_numbered_effectivity, dated_effectivity, lot_effectivity, time_interval_based_effectivity)); id : identifier; 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.' + '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 effectivity_assignment ABSTRACT SUPERTYPE; assigned_effectivity : effectivity; 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 effectivity_context_assignment ABSTRACT SUPERTYPE; assigned_effectivity_assignment : effectivity_assignment; role : effectivity_context_role; END_ENTITY; ENTITY effectivity_context_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY effectivity_relationship; name : label; description : OPTIONAL text; related_effectivity : effectivity; relating_effectivity : effectivity; END_ENTITY; ENTITY electric_charge_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY electric_charge_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.coulomb); END_ENTITY; ENTITY electric_current_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY electric_current_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 = 1.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 electric_potential_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY electric_potential_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.volt); END_ENTITY; ENTITY elementary_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.cfs_faces | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)))) = 0 ))) = 0 ))) = 0; WR4 : 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.ELEMENTARY_SURFACE' IN TYPEOF(fcs\face_surface.face_geometry)) ))) = 0 ))) = 0 ))) = 0; WR5 : 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 (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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.edge_element)))) = 0 ))) = 0 ))) = 0 ))) = 0 ))) = 0; WR6 : 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 (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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'] * TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1 ) )) = 0 ))) = 0 ))) = 0 ))) = 0 ))) = 0; WR7 : 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 (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_end)) ))) = 0 ))) = 0 ))) = 0 ))) = 0 ))) = 0; WR8 : 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 (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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.edge_element\edge_curve.edge_geometry)) AND (NOT (SIZEOF (oe\oriented_edge.edge_element\ edge_curve.edge_geometry\polyline.points) >= 3)) )) = 0 ))) = 0 ))) = 0 ))) = 0 ))) = 0; WR9 : 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; WR10 : 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; WR11 : 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.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation)))) = 0; WR12 : 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 (SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fcs.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))) = 0))) = 0))) =0; END_ENTITY; ENTITY elementary_surface SUPERTYPE OF (ONEOF (plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface)) SUBTYPE OF (surface); position : axis2_placement_3d; END_ENTITY; ENTITY ellipse SUBTYPE OF (conic); semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; END_ENTITY; ENTITY energy_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY energy_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.joule); END_ENTITY; ENTITY entity_assertion SUBTYPE OF (fact_type); END_ENTITY; ENTITY enum_reference_prefix SUBTYPE OF (descriptive_representation_item); END_ENTITY; ENTITY environment; syntactic_representation : generic_variable; semantics : variable_semantics; END_ENTITY; ENTITY evaluated_characteristic SUBTYPE OF (representation, representation_relationship); UNIQUE UR1: SELF\representation_relationship.rep_1, SELF\representation_relationship.rep_2; WHERE WR1 : SELF\representation_relationship.rep_1 <> SELF\representation_relationship.rep_2; END_ENTITY; ENTITY evaluated_degenerate_pcurve SUBTYPE OF (degenerate_pcurve); equivalent_point : cartesian_point; END_ENTITY; ENTITY evaluation_product_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY event_occurrence; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY event_occurrence_assignment ABSTRACT SUPERTYPE; assigned_event_occurrence : event_occurrence; role : event_occurrence_role; END_ENTITY; ENTITY event_occurrence_relationship; name : label; description : OPTIONAL text; relating_event : event_occurrence; related_event : event_occurrence; END_ENTITY; ENTITY event_occurrence_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY exclusive_product_concept_feature_category SUBTYPE OF (product_concept_feature_category); END_ENTITY; ENTITY executed_action SUBTYPE OF (action); END_ENTITY; ENTITY expanded_uncertainty SUBTYPE OF (standard_uncertainty); coverage_factor : REAL; END_ENTITY; ENTITY explicit_procedural_geometric_representation_item_relationship SUBTYPE OF (explicit_procedural_representation_item_relationship); SELF\representation_item_relationship.related_representation_item : geometric_representation_item; SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence; WHERE WR1 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE' IN TYPEOF( SELF\representation_item_relationship.related_representation_item)); END_ENTITY; ENTITY explicit_procedural_representation_item_relationship SUBTYPE OF (representation_item_relationship); SELF\representation_item_relationship.relating_representation_item : procedural_representation_sequence; WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_REPRESENTATION_SEQUENCE' IN TYPEOF( SELF\representation_item_relationship.related_representation_item)); WR2 : SIZEOF(QUERY(q <* using_representations( SELF\representation_item_relationship.related_representation_item) | item_in_context( SELF\representation_item_relationship.relating_representation_item, q.context_of_items))) > 0; END_ENTITY; ENTITY explicit_procedural_representation_relationship SUBTYPE OF (representation_relationship); SELF\representation_relationship.rep_1 : procedural_representation; WHERE WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_2))) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VARIATIONAL_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_2))); WR2 : SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items; END_ENTITY; ENTITY explicit_procedural_shape_representation_relationship SUBTYPE OF (explicit_procedural_representation_relationship); SELF\representation_relationship.rep_1 : procedural_shape_representation; SELF\representation_relationship.rep_2 : shape_representation; END_ENTITY; ENTITY expression ABSTRACT SUPERTYPE OF (ONEOF (numeric_expression, boolean_expression)) SUBTYPE OF (generic_expression); END_ENTITY; ENTITY expression_conversion_based_unit SUBTYPE OF (context_dependent_unit, variable_semantics); INVERSE associated_variable_environment: environment FOR semantics; END_ENTITY; ENTITY extension SUBTYPE OF (derived_shape_aspect); WHERE WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; END_ENTITY; ENTITY extent SUBTYPE OF (characterized_object); END_ENTITY; ENTITY external_class_library SUBTYPE OF (external_source); END_ENTITY; ENTITY external_identification_assignment ABSTRACT SUPERTYPE SUBTYPE OF (identification_assignment); source : external_source; END_ENTITY; ENTITY external_source; source_id : source_item; 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 external_source_relationship; name : label; description : OPTIONAL text; relating_source : external_source; related_source : external_source; END_ENTITY; ENTITY externally_defined_class SUBTYPE OF (class, externally_defined_item); END_ENTITY; ENTITY externally_defined_colour SUBTYPE OF (colour_specification, externally_defined_item); END_ENTITY; ENTITY externally_defined_context_dependent_unit SUBTYPE OF (context_dependent_unit, externally_defined_item); END_ENTITY; ENTITY externally_defined_conversion_based_unit SUBTYPE OF (conversion_based_unit, externally_defined_item); END_ENTITY; ENTITY externally_defined_currency SUBTYPE OF (currency, externally_defined_context_dependent_unit); END_ENTITY; ENTITY externally_defined_curve_font SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_dimension_definition SUBTYPE OF (dimensional_size, externally_defined_item); WHERE WR1 : (SELF\externally_defined_item.item_id = 'external size dimension') AND (SELF\externally_defined_item.source.source_id = 'external size dimension specification'); WR2 : 1 >= SIZEOF(QUERY ( adr <* USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification') )); END_ENTITY; ENTITY externally_defined_general_property SUBTYPE OF (general_property, externally_defined_item); END_ENTITY; ENTITY externally_defined_hatch_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; ENTITY externally_defined_item; item_id : source_item; source : external_source; END_ENTITY; ENTITY externally_defined_item_relationship; name : label; description : OPTIONAL text; relating_item : externally_defined_item; related_item : externally_defined_item; END_ENTITY; ENTITY externally_defined_marker SUBTYPE OF (externally_defined_symbol, pre_defined_marker); END_ENTITY; ENTITY externally_defined_picture_representation_item SUBTYPE OF (picture_representation_item); INVERSE source: applied_external_identification_assignment FOR items; WHERE WR1 : NOT (SELF\representation_item.name IN pre_defined_picture_representation_types); END_ENTITY; ENTITY externally_defined_representation_item SUBTYPE OF (representation_item, externally_defined_item); END_ENTITY; ENTITY externally_defined_string SUBTYPE OF (externally_defined_representation_item); END_ENTITY; ENTITY externally_defined_symbol SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_terminator_symbol SUBTYPE OF (externally_defined_symbol); END_ENTITY; ENTITY externally_defined_text_font SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_tile SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_tile_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; ENTITY extruded_area_solid SUBTYPE OF (swept_area_solid); extruded_direction : direction; depth : positive_length_measure; WHERE WR1 : dot_product( (SELF\swept_area_solid.swept_area.basis_surface\ elementary_surface.position.p[3]), extruded_direction) <> 0.0; END_ENTITY; ENTITY extruded_face_solid SUBTYPE OF (swept_face_solid); extruded_direction : direction; depth : positive_length_measure; WHERE WR1 : dot_product( (SELF\swept_face_solid.swept_face.face_geometry\ elementary_surface.position.p[3]), extruded_direction) <> 0.0; END_ENTITY; ENTITY extruded_face_solid_with_draft_angle SUBTYPE OF (extruded_face_solid_with_trim_conditions); draft_angle : plane_angle_measure; WHERE WR1 : draft_angle <> 0; END_ENTITY; ENTITY extruded_face_solid_with_multiple_draft_angles SUBTYPE OF (extruded_face_solid_with_trim_conditions); drafted_edges : LIST [2:?] OF SET [1:?] OF edge_curve; draft_angles : LIST [2:?] OF plane_angle_measure; WHERE WR1 : SIZEOF(drafted_edges) = SIZEOF(draft_angles); WR2 : SIZEOF(QUERY(q <* draft_angles | q = 0)) = 0; WR3 : SIZEOF(QUERY(q <* drafted_edges | (SIZEOF(QUERY(r <* q | NOT (SELF\swept_face_solid.swept_face IN using_items(r,[])))) > 0))) = 0; END_ENTITY; ENTITY extruded_face_solid_with_trim_conditions SUPERTYPE OF (ONEOF (extruded_face_solid_with_draft_angle, extruded_face_solid_with_multiple_draft_angles)) SUBTYPE OF (extruded_face_solid); first_trim_condition : trim_condition_select; second_trim_condition : trim_condition_select; first_trim_intent : trim_intent; second_trim_intent : trim_intent; first_offset : non_negative_length_measure; second_offset : non_negative_length_measure; WHERE WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(first_trim_condition)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(second_trim_condition))); WR2 : NOT ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND ((first_trim_intent = trim_intent.offset) OR (first_trim_intent = trim_intent.up_to_next))) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition)) AND ((second_trim_intent = trim_intent.offset) OR (second_trim_intent = trim_intent.up_to_next)))); WR3 : NOT (((NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition))) AND ((first_trim_intent = trim_intent.blind) OR (first_trim_intent = trim_intent.through_all))) OR ((NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))) AND ((second_trim_intent = trim_intent.blind) OR (second_trim_intent = trim_intent.through_all)))); WR4 : (((first_trim_intent = trim_intent.offset) AND (first_offset > 0)) XOR ((first_trim_intent <> trim_intent.offset) AND (first_offset = 0))) AND (((second_trim_intent = trim_intent.offset) AND (second_offset > 0)) XOR ((second_trim_intent <> trim_intent.offset) AND (second_offset = 0))); WR5 : NOT((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))) AND (first_trim_condition = second_trim_condition)); END_ENTITY; ENTITY face SUPERTYPE OF (ONEOF (face_surface, subface, oriented_face)) SUBTYPE OF (topological_representation_item); bounds : SET [1:?] OF face_bound; WHERE WR1 : NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF)))); WR2 : SIZEOF(QUERY(temp <* bounds | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF(temp))) <= 1; END_ENTITY; ENTITY face_based_surface_model SUBTYPE OF (geometric_representation_item); fbsm_faces : SET [1:?] OF connected_face_set; END_ENTITY; ENTITY face_bound SUBTYPE OF (topological_representation_item); bound : loop; orientation : BOOLEAN; END_ENTITY; ENTITY face_outer_bound SUBTYPE OF (face_bound); END_ENTITY; ENTITY face_surface SUBTYPE OF (face, geometric_representation_item); face_geometry : surface; same_sense : BOOLEAN; WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); END_ENTITY; ENTITY faceted_brep SUBTYPE OF (manifold_solid_brep); END_ENTITY; ENTITY faceted_brep_shape_representation SUBTYPE OF (shape_representation); WHERE WR1 : SIZEOF ( QUERY ( it <* items| NOT ( SIZEOF ([ '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 <* items| ( SIZEOF ([ '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' ] * TYPEOF (it)) = 1) )) > 0; WR3 : SIZEOF ( QUERY ( fbrep <* QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( csh <* msb_shells(fbrep)| NOT ( SIZEOF ( QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fcs)) AND (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF (fcs\face_surface.face_geometry)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (fcs\face_surface.face_geometry\elementary_surface.position.location)))) )) = 0) )) = 0) )) = 0; WR4 : SIZEOF ( QUERY ( fbrep <* QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( csh <* msb_shells(fbrep)| NOT ( SIZEOF ( QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT ( SIZEOF ( QUERY ( bnds <* fcs.bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (bnds)) )) = 1) )) = 0) )) = 0) )) = 0; WR5 : 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; WR6 : 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; WR7 : 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.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; END_ENTITY; ENTITY fact_type SUBTYPE OF (property_definition); END_ENTITY; ENTITY fill_area_style SUBTYPE OF (founded_item); name : label; fill_styles : SET [1:?] OF fill_style_select; WHERE WR1 : SIZEOF(QUERY(fill_style <* SELF.fill_styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FILL_AREA_STYLE_COLOUR' IN TYPEOF(fill_style) )) <= 1; END_ENTITY; ENTITY fill_area_style_colour; name : label; fill_colour : colour; END_ENTITY; ENTITY fill_area_style_hatching SUBTYPE OF (geometric_representation_item); hatch_line_appearance : curve_style; start_of_next_hatch_line : one_direction_repeat_factor; point_of_reference_hatch_line : cartesian_point; pattern_start : cartesian_point; hatch_line_angle : plane_angle_measure; END_ENTITY; ENTITY fill_area_style_tile_coloured_region SUBTYPE OF (geometric_representation_item); closed_curve : curve_or_annotation_curve_occurrence; region_colour : colour; WHERE WR1 : (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (closed_curve))) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' IN TYPEOF (closed_curve)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE' IN TYPEOF (closed_curve)) OR ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (closed_curve)) AND (closed_curve\b_spline_curve.closed_curve = TRUE) ) OR ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (closed_curve)) AND (closed_curve\composite_curve.closed_curve = TRUE) ) OR ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (closed_curve)) AND (closed_curve\polyline.points[LOINDEX(closed_curve\polyline.points)] = closed_curve\polyline.points[HIINDEX(closed_curve\polyline.points)]) ); END_ENTITY; ENTITY fill_area_style_tile_curve_with_style SUBTYPE OF (geometric_representation_item); styled_curve : annotation_curve_occurrence; END_ENTITY; ENTITY fill_area_style_tile_symbol_with_style SUBTYPE OF (geometric_representation_item); symbol : annotation_symbol_occurrence; END_ENTITY; ENTITY fill_area_style_tiles SUBTYPE OF (geometric_representation_item); tiling_pattern : two_direction_repeat_factor; tiles : SET [1:?] OF fill_area_style_tile_shape_select; tiling_scale : positive_ratio_measure; END_ENTITY; ENTITY flat_pattern_ply_representation_relationship SUBTYPE OF (shape_representation_relationship); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN (TYPEOF (SELF\representation_relationship.rep_1) * TYPEOF (SELF\representation_relationship.rep_2)); WR2 : SELF\representation_relationship.rep_1. context_of_items\geometric_representation_context. coordinate_space_dimension = 3; END_ENTITY; ENTITY flatness_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 force_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY force_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.newton); END_ENTITY; ENTITY forward_chaining_rule SUBTYPE OF (rule_definition); END_ENTITY; ENTITY forward_chaining_rule_premise SUBTYPE OF (property_definition, property_definition_representation, representation); END_ENTITY; ENTITY founded_item SUPERTYPE OF (ONEOF (character_glyph_style_outline, character_glyph_style_stroke, curve_style, curve_style_font, curve_style_font_and_scaling, curve_style_font_pattern, fill_area_style, point_style, presentation_style_assignment, surface_side_style, surface_style_boundary, surface_style_control_grid, surface_style_fill_area, surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, surface_style_usage, symbol_style, text_style)); DERIVE users : SET [0:?] OF founded_item_select := using_items(SELF,[]); WHERE WR1 : SIZEOF(users) > 0; WR2 : NOT(SELF IN users); END_ENTITY; ENTITY frequency_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY frequency_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.hertz); END_ENTITY; ENTITY func SUBTYPE OF (compound_representation_item); END_ENTITY; ENTITY functional_breakdown_context SUBTYPE OF (breakdown_context); END_ENTITY; ENTITY functional_element_usage SUBTYPE OF (breakdown_element_usage); END_ENTITY; ENTITY functionally_defined_transformation; name : label; description : OPTIONAL text; END_ENTITY; ENTITY general_material_property SUBTYPE OF (general_property); WHERE WR1 : SIZEOF( QUERY( gpa <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF(gpa.derived_definition)) )) = 0; END_ENTITY; ENTITY general_property; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY general_property_association; name : label; description : OPTIONAL text; base_definition : general_property; derived_definition : derived_property_select; WHERE WR1 : SIZEOF(USEDIN(derived_definition, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1; WR2 : derived_definition.name = base_definition.name; END_ENTITY; ENTITY general_property_relationship; name : label; description : OPTIONAL text; relating_property : general_property; related_property : general_property; END_ENTITY; ENTITY generic_character_glyph_symbol ABSTRACT SUPERTYPE SUBTYPE OF (symbol_representation); END_ENTITY; ENTITY generic_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_generic_expression, unary_generic_expression, binary_generic_expression, multiple_arity_generic_expression)); WHERE WR1 : is_acyclic(SELF); END_ENTITY; ENTITY generic_literal ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); END_ENTITY; ENTITY generic_variable ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); INVERSE interpretation: environment FOR syntactic_representation; END_ENTITY; ENTITY geometric_alignment SUBTYPE OF (derived_shape_aspect); WHERE WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1; END_ENTITY; ENTITY geometric_curve_set SUBTYPE OF (geometric_set); WHERE WR1 : SIZEOF(QUERY(temp <* SELF\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(temp))) = 0; END_ENTITY; ENTITY geometric_intersection SUBTYPE OF (derived_shape_aspect); WHERE WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1; END_ENTITY; ENTITY geometric_item_specific_usage SUBTYPE OF (item_identified_representation_usage); SELF\item_identified_representation_usage.definition : geometric_item_specific_usage_select; SELF\item_identified_representation_usage.identified_item : geometric_representation_item; SELF\item_identified_representation_usage.used_representation : shape_representation; END_ENTITY; ENTITY geometric_model_element_relationship SUBTYPE OF (geometric_representation_item, representation_item_relationship); SELF\representation_item_relationship.related_representation_item : geometric_representation_item; SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; UNIQUE UR1 : relating_representation_item, related_representation_item; WHERE WR1 : SELF\representation_item_relationship.relating_representation_item :<>: SELF\representation_item_relationship.related_representation_item; END_ENTITY; ENTITY geometric_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; ENTITY geometric_representation_item SUPERTYPE OF (ONEOF (point, direction, vector, placement, cartesian_transformation_operator, curve, surface, edge_curve, face_surface, poly_loop, vertex_point, solid_model, boolean_result, sphere, right_circular_cone, right_circular_cylinder, torus, block, right_angular_wedge, half_space_solid, shell_based_surface_model, face_based_surface_model, shell_based_wireframe_model, edge_based_wireframe_model, geometric_set, camera_model, camera_model_d3_multi_clipping_intersection, camera_model_d3_multi_clipping_union, light_source)) SUBTYPE OF (representation_item); DERIVE dim : dimension_count := dimension_of(SELF); WHERE WR1 : SIZEOF (QUERY (using_rep <* using_representations (SELF) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (using_rep.context_of_items)))) = 0; END_ENTITY; ENTITY geometric_set SUBTYPE OF (geometric_representation_item); elements : SET [1:?] OF geometric_set_select; END_ENTITY; ENTITY geometric_tolerance; name : label; description : text; magnitude : measure_with_unit; toleranced_shape_aspect : shape_aspect; WHERE WR1 : ('NUMBER' IN TYPEOF (magnitude\measure_with_unit.value_component)) AND (magnitude\measure_with_unit.value_component >= 0.0); END_ENTITY; ENTITY geometric_tolerance_relationship; name : label; description : text; relating_geometric_tolerance : geometric_tolerance; related_geometric_tolerance : geometric_tolerance; END_ENTITY; ENTITY geometric_tolerance_with_datum_reference SUBTYPE OF (geometric_tolerance); datum_system : SET [1:?] OF datum_reference; END_ENTITY; ENTITY geometric_tolerance_with_defined_unit SUBTYPE OF (geometric_tolerance); unit_size : measure_with_unit; WHERE WR1 : ('NUMBER' IN TYPEOF (unit_size\measure_with_unit.value_component)) AND (unit_size\measure_with_unit.value_component > 0.0); END_ENTITY; ENTITY geometrical_tolerance_callout SUBTYPE OF (draughting_callout); END_ENTITY; ENTITY geometrically_bounded_2d_wireframe_representation SUBTYPE OF (shape_representation); WHERE WR1 : SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 2; WR2 : SIZEOF (QUERY (item <* SELF.items | NOT (SIZEOF (TYPEOF (item) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_2D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM']) = 1) )) = 0; WR3 : SIZEOF (QUERY (item <* SELF.items | SIZEOF (TYPEOF (item) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM']) = 1 )) >= 1; WR4 : SIZEOF (QUERY (mi <* QUERY (item <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (item))) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; WR5 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (item))) | NOT (SIZEOF (QUERY (elem <* gcs\geometric_set.elements | NOT (SIZEOF (TYPEOF (elem) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_2D', '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.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE']) = 1) )) = 0) )) = 0; WR6 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (item))) | NOT (SIZEOF (QUERY (crv <* QUERY (elem <* gcs\geometric_set.elements | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (elem))) | NOT (valid_basis_curve_in_2d_wireframe (crv)) )) = 0) )) = 0; WR7 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (item))) | NOT (SIZEOF (QUERY (pnt <* QUERY (elem <* gcs\geometric_set.elements | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF(elem))) | NOT (SIZEOF (TYPEOF (pnt) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE']) = 1) )) = 0) )) = 0; END_ENTITY; ENTITY geometrically_bounded_surface_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.GEOMETRIC_SET', '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.GEOMETRIC_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * 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.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY(mr_it <* mi\mapped_item.mapping_source.mapped_representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0)))) = 0; WR4 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(pnt <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF(gsel)) | NOT (gbsf_check_point(pnt)))) = 0))) = 0; WR5 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cv <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF(gsel)) | NOT (gbsf_check_curve(cv)))) = 0))) = 0; WR6 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sf <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(gsel)) | NOT (gbsf_check_surface(sf)))) = 0))) = 0; WR7 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | SIZEOF(QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(gsel))) > 0)) > 0; END_ENTITY; ENTITY geometrically_bounded_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE WR1 : SIZEOF ( QUERY ( it <* SELF.items| NOT ( SIZEOF ( TYPEOF (it) * [ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', '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.MAPPED_ITEM' ]) = 1) )) = 0; WR2 : SIZEOF ( QUERY ( it <* SELF.items| ( SIZEOF ( TYPEOF (it) * [ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ]) = 1) )) >= 1; WR3 : SIZEOF ( QUERY ( gcs <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( crv <* QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_curve(crv) )) = 0) )) = 0; WR4 : SIZEOF ( QUERY ( gcs <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( pnts <* QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_point(pnts) )) = 0) )) = 0; WR5 : SIZEOF ( QUERY ( gcs <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( cnc <* QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC' IN TYPEOF (elem)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (cnc\conic.position)) )) = 0) )) = 0; WR6 : SIZEOF ( QUERY ( gcs <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( pline <* QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (elem)) )| NOT ( SIZEOF (pline\polyline.points) > 2) )) = 0) )) = 0; WR7 : 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.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; END_ENTITY; ENTITY global_assignment SUBTYPE OF (representation_item_relationship); END_ENTITY; ENTITY global_uncertainty_assigned_context SUBTYPE OF (representation_context); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; ENTITY global_unit_assigned_context SUBTYPE OF (representation_context); units : SET [1:?] OF unit; END_ENTITY; ENTITY ground_fact SUBTYPE OF (atomic_formula); END_ENTITY; ENTITY group; name : label; description : OPTIONAL text; 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 group_assignment ABSTRACT SUPERTYPE; assigned_group : group; 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 group_relationship; name : label; description : OPTIONAL text; relating_group : group; related_group : group; END_ENTITY; ENTITY half_space_solid SUBTYPE OF (geometric_representation_item); base_surface : surface; agreement_flag : BOOLEAN; END_ENTITY; ENTITY hardness_representation SUBTYPE OF (representation); WHERE WR1 : ( {2<= SIZEOF ( SELF.items ) <=4} ) AND ( SIZEOF ( QUERY ( i <* items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name IN [ 'measuring method' , 'measuring position' ] ) ) ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) AND ( i.name IN ['depth' , 'hardness'] ) ) ) = SIZEOF ( SELF.items ) ); WR2 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'measuring method' ) ) =1; WR3 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='hardness' ) ) =1; WR4 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'measuring position' ) ) <=1; WR5 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='depth' ) ) <=1; WR6 : ( SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr. definition , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND ( gpa. base_definition.name ='surface_condition' ) ) ) =1 ) ) =1 ); END_ENTITY; ENTITY hidden_element_over_riding_styled_item SUBTYPE OF (context_dependent_over_riding_styled_item); SELF\styled_item.item : camera_image; SELF\context_dependent_over_riding_styled_item.style_context : LIST [1:1] OF presentation_view; INVERSE container: SET [1:?] OF presentation_view FOR items; WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF (SELF.item\mapped_item.mapping_source.mapping_origin); END_ENTITY; ENTITY hyperbola SUBTYPE OF (conic); semi_axis : positive_length_measure; semi_imag_axis : positive_length_measure; END_ENTITY; ENTITY id_attribute; attribute_value : identifier; identified_item : id_attribute_select; END_ENTITY; ENTITY identification_assignment ABSTRACT SUPERTYPE; assigned_id : identifier; role : identification_role; END_ENTITY; ENTITY identification_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY illuminance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY illuminance_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lux); END_ENTITY; ENTITY included_text_block SUBTYPE OF (mapped_item); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_TEXT_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); END_ENTITY; ENTITY inclusion_product_concept_feature SUBTYPE OF (conditional_concept_feature); WHERE WR1 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( SELF ) ); WR2 : SIZEOF (QUERY ( cfr <* USEDIN ( SELF ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF( cfr ) ) ) + SIZEOF(QUERY ( cfr <* USEDIN (SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr) ) )= 0; WR3 : SELF.condition.conditional_operator.name = 'implication'; END_ENTITY; ENTITY indirectly_selected_elements SUBTYPE OF (user_selected_elements); indirectly_picked_items : SET [1:?] OF representation_item; END_ENTITY; ENTITY indirectly_selected_shape_elements SUBTYPE OF (indirectly_selected_elements, user_selected_shape_elements); WHERE WR1 : SIZEOF(QUERY(q <* SELF\indirectly_selected_elements.indirectly_picked_items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM' IN TYPEOF(q)))) = 0; END_ENTITY; ENTITY inductance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY inductance_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.henry); END_ENTITY; ENTITY information_right SUBTYPE OF (action_method); END_ENTITY; ENTITY information_usage_right SUBTYPE OF (action_method); END_ENTITY; ENTITY instance_usage_context_assignment SUBTYPE OF (product_definition_context); items : SET [1:?] OF instance_usage_context_select; END_ENTITY; ENTITY instanced_feature SUBTYPE OF (shape_aspect, shape_feature_definition); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF\shape_aspect.of_shape.definition); WR2 : SELF\shape_aspect.product_definitional; END_ENTITY; ENTITY int_literal SUBTYPE OF (literal_number); SELF\literal_number.the_value : INTEGER; END_ENTITY; ENTITY integer_representation_item SUBTYPE OF (representation_item, int_literal); END_ENTITY; ENTITY intersection_curve SUBTYPE OF (surface_curve); WHERE WR1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2; WR2 : associated_surface(SELF\surface_curve.associated_geometry[1]) <> associated_surface(SELF\surface_curve.associated_geometry[2]); END_ENTITY; ENTITY interval_expression SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); DERIVE interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; interval_low : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; WHERE WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION' IN TYPEOF(interval_low)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION' IN TYPEOF(interval_item) ) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION' IN TYPEOF(interval_high)); WR2 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION' IN TYPEOF (SELF.interval_low)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION' IN TYPEOF (SELF.interval_high)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION' IN TYPEOF (SELF.interval_item))) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_item)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_high))); END_ENTITY; ENTITY invisibility; invisible_items : SET [1:?] OF invisible_item; END_ENTITY; ENTITY iso4217_currency SUBTYPE OF (currency); END_ENTITY; ENTITY item_defined_transformation; name : label; description : OPTIONAL text; transform_item_1 : representation_item; transform_item_2 : representation_item; END_ENTITY; ENTITY item_identified_representation_usage; name : label; description : OPTIONAL text; definition : represented_definition; used_representation : representation; identified_item : representation_item; WHERE WR1 : SELF.used_representation IN using_representations(SELF.identified_item); END_ENTITY; ENTITY known_source SUBTYPE OF (external_source, pre_defined_item); END_ENTITY; ENTITY laid_defined_transformation SUBTYPE OF (transformation_with_derived_angle); END_ENTITY; ENTITY laminate_table SUPERTYPE OF (ONEOF (part_laminate_table, zone_structural_makeup)) SUBTYPE OF (product_definition); END_ENTITY; ENTITY language SUBTYPE OF (group); WHERE WR1 : SELF\group.name <> ''; END_ENTITY; ENTITY leader_curve SUBTYPE OF (annotation_curve_occurrence); WHERE WR1 : SIZEOF( QUERY(ldc <* 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.' + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1; END_ENTITY; ENTITY leader_directed_callout SUBTYPE OF (draughting_callout); WHERE WR1 : SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) >= 1; WR2 : SIZEOF(SELF\draughting_callout.contents) >=2; END_ENTITY; ENTITY leader_directed_dimension SUBTYPE OF (leader_directed_callout); WHERE WR1 : SIZEOF (QUERY (con <* SELF.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF (con)))=1; END_ENTITY; ENTITY leader_terminator SUBTYPE OF (terminator_symbol); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF (SELF\terminator_symbol.annotated_curve); END_ENTITY; ENTITY length_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY length_unit SUBTYPE OF (named_unit); WHERE WR1 : (SELF\named_unit.dimensions.length_exponent = 1.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 light_source SUPERTYPE OF (ONEOF (light_source_ambient, light_source_directional, light_source_positional, light_source_spot)) SUBTYPE OF (geometric_representation_item); light_colour : colour; WHERE WR1 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'STYLED_ITEM.ITEM')) = 0; END_ENTITY; ENTITY light_source_ambient SUBTYPE OF (light_source); END_ENTITY; ENTITY light_source_directional SUBTYPE OF (light_source); orientation : direction; END_ENTITY; ENTITY light_source_positional SUBTYPE OF (light_source); position : cartesian_point; constant_attenuation : REAL; distance_attenuation : REAL; END_ENTITY; ENTITY light_source_spot SUBTYPE OF (light_source); position : cartesian_point; orientation : direction; concentration_exponent : REAL; constant_attenuation : REAL; distance_attenuation : REAL; spread_angle : positive_plane_angle_measure; END_ENTITY; ENTITY limits_and_fits; form_variance : label; zone_variance : label; grade : label; source : text; END_ENTITY; ENTITY line SUBTYPE OF (curve); pnt : cartesian_point; dir : vector; WHERE WR1 : dir.dim = pnt.dim; END_ENTITY; ENTITY line_profile_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)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3); WR2 : SIZEOF ( QUERY ( sar <* USEDIN (SELF\geometric_tolerance.toleranced_shape_aspect, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.name IN [ 'affected plane association', 'resulting intersection curve association' ]) )) = 1; END_ENTITY; ENTITY linear_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; ENTITY literal_conjunction SUBTYPE OF (simple_clause); END_ENTITY; ENTITY literal_disjunction SUBTYPE OF (simple_clause); END_ENTITY; ENTITY literal_number ABSTRACT SUPERTYPE OF (ONEOF (int_literal, real_literal)) SUBTYPE OF (simple_numeric_expression, generic_literal); the_value : NUMBER; END_ENTITY; ENTITY local_time; hour_component : hour_in_day; minute_component : OPTIONAL minute_in_hour; second_component : OPTIONAL second_in_minute; zone : coordinated_universal_time_offset; WHERE WR1 : valid_time (SELF); END_ENTITY; ENTITY logical_literal SUBTYPE OF (generic_literal); lit_value : LOGICAL; END_ENTITY; ENTITY logical_representation_item SUBTYPE OF (representation_item, logical_literal); END_ENTITY; ENTITY loop SUPERTYPE OF (ONEOF (vertex_loop, edge_loop, poly_loop)) SUBTYPE OF (topological_representation_item); END_ENTITY; ENTITY loss_tangent_measure_with_unit SUBTYPE OF (ratio_measure_with_unit); END_ENTITY; ENTITY lot_effectivity SUBTYPE OF (effectivity); effectivity_lot_id : identifier; effectivity_lot_size : measure_with_unit; END_ENTITY; ENTITY luminous_flux_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY luminous_flux_unit SUBTYPE OF (named_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lumen); END_ENTITY; ENTITY luminous_intensity_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY luminous_intensity_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 = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 1.0); END_ENTITY; ENTITY magnetic_flux_density_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY magnetic_flux_density_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.tesla); END_ENTITY; ENTITY magnetic_flux_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY magnetic_flux_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.weber); END_ENTITY; ENTITY make_from_usage_option SUBTYPE OF (product_definition_usage); ranking : INTEGER; ranking_rationale : text; quantity : measure_with_unit; WHERE WR1 : (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); END_ENTITY; ENTITY manifold_solid_brep SUBTYPE OF (solid_model); outer : closed_shell; END_ENTITY; ENTITY manifold_subsurface_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.CONNECTED_FACE_SUB_SET', '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.CONNECTED_FACE_SUB_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0; WR3 : 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.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation)))) = 0; WR4 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN TYPEOF(cfss)))) = 0; WR5 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT( (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(cfss\connected_face_sub_set.parent_face_set))AND (SIZEOF(QUERY(fac <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces | NOT advanced_face_properties(fac))) = 0)) OR (SIZEOF(QUERY(fac <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF(fac)))) = 0) ))) = 0; WR6 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | ( SIZEOF (QUERY (fac <* cfss\connected_face_set.cfs_faces | NOT advanced_face_properties(fac))) = 0))) = 0; WR7 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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.edge_element)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBEDGE' IN TYPEOF(oe.edge_element)) ))) = 0 ))) = 0 ))) = 0 ))) = 0; WR8 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_end)) ))) = 0 ))) = 0 ))) = 0 ))) = 0; WR9 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND ( NOT (SIZEOF(QUERY (bnds <* fcs.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(bnds.bound)) = 1 ) )) = 0) ))) = 0 ))) = 0; WR10 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND ( NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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 )))) = 0 ))) = 0; WR11 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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.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 )))) = 0 ))) = 0; WR12 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.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.edge_element\edge_curve.edge_geometry)) AND (NOT (SIZEOF (oe\oriented_edge.edge_element\ edge_curve.edge_geometry\polyline.points) >= 3)) )) = 0 ))) = 0 )))) = 0 ))) = 0; END_ENTITY; ENTITY manifold_surface_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.SHELL_BASED_SURFACE_MODEL', '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.SHELL_BASED_SURFACE_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * 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.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY (mr_it <* mi\mapped_item.mapping_source.mapped_representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (mr_it)))) > 0 )))) = 0; WR4 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (sh <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL'] * TYPEOF (sh)) = 1))) = 0))) = 0; WR5 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fa)) )) = 0))) = 0))) = 0; WR6 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (msf_surface_check(fa\face_surface.face_geometry))))) = 0))) = 0))) = 0; WR7 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (bnds <* fa.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 (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; WR8 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items| 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR9 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <* elp_fbnds\path.edge_list | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) | NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE', '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.CURVE_REPLICA', '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.OFFSET_CURVE_3D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE', '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'] * TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0)))) = 0))) = 0))) = 0; WR10 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list | NOT (msf_curve_check (oe.edge_element\edge_curve.edge_geometry)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR11 : SIZEOF (QUERY(sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe.edge_element.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe.edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0; WR12 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list | NOT ((SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF (oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1 )))) = 0))) = 0)))) = 0))) = 0))) = 0; WR13 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.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\vertex_loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0; WR14 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* sbsm\shell_based_surface_model.sbsm_boundary | NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) = 1))) = 0)))) = 0))) = 0))) = 0; END_ENTITY; ENTITY mapped_item SUBTYPE OF (representation_item); mapping_source : representation_map; mapping_target : representation_item; WHERE WR1 : acyclic_mapped_representation(SELF); END_ENTITY; ENTITY mass_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY mass_unit SUBTYPE OF (named_unit); WHERE WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 1.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 material_designation; name : label; definitions : SET [1:?] OF characterized_definition; END_ENTITY; ENTITY material_designation_characterization; name : label; description : text; designation : material_designation; property : characterized_material_property; END_ENTITY; ENTITY material_property SUBTYPE OF (property_definition); UNIQUE UR1: SELF\property_definition.name, SELF\property_definition.definition; WHERE WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_OBJECT' IN TYPEOF(SELF\property_definition.definition)) OR (SIZEOF(bag_to_set(USEDIN(SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - QUERY(temp <* bag_to_set(USEDIN(SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MATERIAL_PROPERTY_REPRESENTATION' IN TYPEOF(temp)))) = 0); END_ENTITY; ENTITY material_property_representation SUBTYPE OF (property_definition_representation); dependent_environment : data_environment; END_ENTITY; ENTITY measure_qualification; name : label; description : text; qualified_measure : measure_with_unit; qualifiers : SET [1:?] OF value_qualifier; WHERE WR1 : SIZEOF(QUERY(temp <* qualifiers | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp))) < 2; WR2 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(SELF\measure_qualification.qualified_measure)); END_ENTITY; ENTITY measure_representation_item SUBTYPE OF (representation_item, measure_with_unit); END_ENTITY; ENTITY measure_with_unit SUPERTYPE OF (ONEOF (length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, electric_current_measure_with_unit, thermodynamic_temperature_measure_with_unit, celsius_temperature_measure_with_unit, amount_of_substance_measure_with_unit, luminous_intensity_measure_with_unit, plane_angle_measure_with_unit, solid_angle_measure_with_unit, area_measure_with_unit, volume_measure_with_unit, ratio_measure_with_unit, acceleration_measure_with_unit, capacitance_measure_with_unit, electric_charge_measure_with_unit, conductance_measure_with_unit, electric_potential_measure_with_unit, energy_measure_with_unit, magnetic_flux_density_measure_with_unit, force_measure_with_unit, frequency_measure_with_unit, illuminance_measure_with_unit, inductance_measure_with_unit, luminous_flux_measure_with_unit, magnetic_flux_measure_with_unit, power_measure_with_unit, pressure_measure_with_unit, resistance_measure_with_unit, velocity_measure_with_unit, absorbed_dose_measure_with_unit, radioactivity_measure_with_unit, dose_equivalent_measure_with_unit)); value_component : measure_value; unit_component : unit; WHERE WR1 : valid_units(SELF); END_ENTITY; ENTITY mechanical_context SUBTYPE OF (product_context); WHERE WR1 : SELF.discipline_type = 'mechanical'; END_ENTITY; ENTITY mechanical_design_and_draughting_relationship SUBTYPE OF (definitional_representation_relationship_with_same_context); SELF\representation_relationship.rep_1 : mechanical_design_and_draughting_relationship_select; SELF\representation_relationship.rep_2 : mechanical_design_and_draughting_relationship_select; WHERE WR1 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); WR3 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); END_ENTITY; ENTITY mechanical_design_geometric_presentation_area SUBTYPE OF (presentation_area); SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_area_items; WHERE WR1 : SIZEOF(QUERY(it1 <* SELF.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW' IN TYPEOF (it1\mapped_item.mapping_source.mapped_representation)))) = 0; WR2 : SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW' IN TYPEOF (mi1\mapped_item.mapping_source.mapped_representation)) | -- search in all presentation_views for axis2_placements and -- mapped_items and for the subtype of mapped_item -- camera_image_3d_with_scale; the latter shall reference -- a mechanical_design_geometric_presentation_representation; -- the supertype mapped_item shall reference presentation_view. NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source. mapped_representation\representation.items | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW' IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation))) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) )) ))) = 0))) = 0; WR3 : (SIZEOF(QUERY(ps <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | ((ps.size\planar_extent.size_in_x <= 0) OR (ps.size\planar_extent.size_in_y <= 0)))) = 0) AND (SIZEOF(QUERY(ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN (ais, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | ((ps.size\planar_extent.size_in_x <= 0) OR (ps.size\planar_extent.size_in_y <= 0)))) > 0))) = 0); WR4 : (SIZEOF(QUERY(ps <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1) AND (SIZEOF(QUERY(ps <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0) OR ((SIZEOF(QUERY(ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN (ais, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1))) = 1) AND (SIZEOF(QUERY(ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN (ais, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0))) = 1)); END_ENTITY; ENTITY mechanical_design_geometric_presentation_representation SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_representation_items; WHERE WR1 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT (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.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0; WR2 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(si\styled_item.item))) | NOT ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item. item\mapped_item.mapping_source.mapped_representation))) )) = 0; WR3 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; WR4 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\styled_item.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION'] * TYPEOF(psbc\presentation_style_by_context.style_context)) = 1))) = 0))) = 0; WR5 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE' IN TYPEOF(pss)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ps\point_style.marker_size)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0; WR6 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF(pss)) | NOT((SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(cs\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs\curve_style.curve_width)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; WR7 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_SIDE_STYLE' IN TYPEOF (ssu\surface_style_usage.style)))) = 0))) = 0))) = 0; WR8 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | NOT (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY'] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; WR9 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_colour)) = 1) AND ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_width)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR10 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_width)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR11 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette\curve_style. curve_width)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR12 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_width)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR13 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_width)) AND (SIZEOF( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; END_ENTITY; ENTITY mechanical_design_presentation_representation_with_draughting SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF camera_model_d3; END_ENTITY; ENTITY mechanical_design_shaded_presentation_area SUBTYPE OF (presentation_area); WHERE WR1 : SIZEOF (QUERY (it1 <* SELF.items | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF (it1)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it1)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW' IN TYPEOF (it1\mapped_item.mapping_source.mapped_representation)))))) = 0; WR2 : SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it1)) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW' IN TYPEOF (mi1\mapped_item.mapping_source.mapped_representation)) | (* search in all presentation_views for axis2_placements and mapped_items and for the subtype of mapped_item, camera_image_3d_with_scale; the latter shall reference a mechanical_design_geometric_presentation_representation; the supertype mapped_item shall reference presentation_view. *) NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source. mapped_representation\representation.items | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW' IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation))) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) )) ))) = 0))) = 0; WR3 : (SIZEOF (QUERY(ps <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | NOT ((ps.size\planar_extent.size_in_x > 0) AND (ps.size\planar_extent.size_in_y > 0)) )) = 0) AND (* check secondly for presentation_set, via area_in_set *) (SIZEOF (QUERY(pset <* QUERY(ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AREA_IN_SET.AREA') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | (* after having collected all presentation_set, check their sizes *) SIZEOF (QUERY(psize <* USEDIN(pset, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | NOT ((psize.size\planar_extent.size_in_x > 0) AND (psize.size\planar_extent.size_in_y > 0)) )) = 0)) = 0); WR4 : (SIZEOF(QUERY( psize <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF (psize.size.placement))) = 1) AND (* check secondly for presentation_set, via area_in_set *) (SIZEOF (QUERY(pset <* QUERY(ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AREA_IN_SET.AREA') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) | (* after having collected all presentation_set, check their dimension *) SIZEOF (QUERY(psize <* USEDIN(pset, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT') | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF (psize.size.placement)) )) = 0)) = 0); WR5 : SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it1)) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW' IN TYPEOF (mi1\mapped_item.mapping_source.mapped_representation)) | (* search in all presentation_views for mapped_items and for the subtype of mapped_item, camera_image_3d_with_scale; the latter shall reference a camera_usage that shall have as its mapping_origin either camera_model_d3, camera_model_d3_with_hlhsr, or camera_model_with_light_sources. *) NOT (SIZEOF(QUERY(ci <* pv\mapped_item.mapping_source. mapped_representation\representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci)) AND (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CAMERA_MODEL_D3', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CAMERA_MODEL_D3_WITH_HLHSR', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF (ci\mapped_item.mapping_source.mapping_origin)) = 1))) = 0))) = 0; END_ENTITY; ENTITY mechanical_design_shaded_presentation_representation SUBTYPE OF (representation); WHERE WR1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF( ['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.STYLED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3'] * TYPEOF(it)) = 1))) = 0; WR2 : 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 (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.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0; WR3 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(si\styled_item.item))) | NOT ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item. item\mapped_item.mapping_source.mapped_representation))) )) = 0; WR4 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (pss <* psa.styles | NOT (SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'] * TYPEOF (pss)) = 1))) = 0))) = 0))) = 0; WR5 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psbc <* QUERY (psa <* si\styled_item.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF (psa)) | NOT (SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION'] * TYPEOF (psbc\presentation_style_by_context.style_context)) = 1))) = 0))) = 0; WR6 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ps <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE' IN TYPEOF (pss)) | NOT ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MARKER_TYPE' IN TYPEOF (ps\point_style.marker)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (ps\point_style.marker_size)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0; WR7 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (cs <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (pss)) | NOT ( (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (cs\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs\curve_style.curve_width)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0; WR8 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_SIDE_STYLE' IN TYPEOF (ssu\surface_style_usage.style)) )) = 0))) = 0 ))) = 0; WR9 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | NOT (SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_PARAMETER_LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_CONTROL_GRID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_SILHOUETTE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_SEGMENTATION_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_BOUNDARY', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_FILL_AREA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_RENDERING'] * TYPEOF (sses)) = 1))) = 0))) = 0))) = 0))) = 0; WR10 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (ssfa <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_FILL_AREA' IN TYPEOF (sses)) | NOT (SIZEOF (QUERY (fss <* ssfa\surface_style_fill_area.fill_area.fill_styles | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fss)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0))) = 0))) = 0))) = 0; WR11 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (sspl <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF (sses)) | NOT (( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_width)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sspl\surface_style_parameter_line. style_of_parameter_lines\curve_style.curve_font)) = 1)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF (sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sspl\surface_style_parameter_line.style_of_parameter_lines\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR12 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (sscg <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF (sses)) | NOT (( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_width)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sscg\surface_style_control_grid. style_of_control_grid\curve_style.curve_font)) = 1)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sscg\surface_style_control_grid.style_of_control_grid\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR13 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (sssh <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF (sses)) | NOT (( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_width)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sssh\surface_style_silhouette. style_of_silhouette\curve_style.curve_font)) = 1)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssh\surface_style_silhouette.style_of_silhouette\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR14 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (sssc <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF (sses)) | NOT (( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_width)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve\curve_style.curve_font)) = 1)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF (sssc\surface_style_segmentation_curve. style_of_segmentation_curve)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (sssc\surface_style_segmentation_curve.style_of_segmentation_curve\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR15 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (ssbd <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)) | NOT (( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_colour)) = 1) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF (ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_width)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF (ssbd\surface_style_boundary. style_of_boundary\curve_style.curve_font)) = 1)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ssbd\surface_style_boundary.style_of_boundary\ curve_style_rendering.rendering_properties.rendered_colour)) = 1))) )) = 0))) = 0))) = 0))) = 0; WR16 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (psa <* si\styled_item.styles | NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (pss)) | NOT (SIZEOF (QUERY (ssre <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SURFACE_STYLE_RENDERING' IN TYPEOF (sses)) | NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF (ssre\surface_style_rendering.surface_colour)) = 1))) = 0))) = 0))) = 0))) = 0; END_ENTITY; ENTITY min_and_major_ply_orientation_basis SUBTYPE OF (representation_item_relationship, geometric_representation_item); SELF\representation_item_relationship.related_representation_item : axis2_placement_3d; SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d; DERIVE major_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.related_representation_item; minor_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.relating_representation_item; END_ENTITY; ENTITY modified_geometric_tolerance SUBTYPE OF (geometric_tolerance); modifier : limit_condition; END_ENTITY; ENTITY modified_solid ABSTRACT SUPERTYPE OF (ONEOF (edge_blended_solid, sculptured_solid, shelled_solid, modified_solid_with_placed_configuration)) SUBTYPE OF (solid_model); rationale : text; base_solid : base_solid_select; END_ENTITY; ENTITY modified_solid_with_placed_configuration ABSTRACT SUPERTYPE OF (ONEOF (solid_with_depression, solid_with_protrusion, solid_with_shape_element_pattern)) SUBTYPE OF (modified_solid); placing : axis2_placement_3d; END_ENTITY; ENTITY moments_of_inertia_representation SUBTYPE OF (representation); WHERE WR1 : (SIZEOF(SELF.items) = 1) AND (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'moments of inertia matrix') )) = 1); WR2 : SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'LIST_REPRESENTATION_ITEM' IN TYPEOF(i\compound_representation_item.item_element)) AND value_range_aggregate_rep_item (i\compound_representation_item.item_element) )) = 1; END_ENTITY; ENTITY multi_language_attribute_assignment SUBTYPE OF (attribute_value_assignment); items : SET [1:?] OF multi_language_attribute_item; DERIVE translation_language : language := language_indication[1]\attribute_classification_assignment.assigned_class; INVERSE language_indication: SET [1:1] OF attribute_language_assignment FOR items; WHERE WR1 : (SELF\attribute_value_assignment.role.name = 'alternate language'); WR2 : SIZEOF( QUERY( ala <* language_indication | (ala\attribute_classification_assignment.attribute_name = 'attribute_value') AND (ala\attribute_classification_assignment.role.name='translated') )) = 1; WR3 : SELF\attribute_value_assignment.attribute_name <> ''; WR4 : SIZEOF(QUERY(ci <* items | SIZEOF(QUERY(ata <* USEDIN(ci, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (ata\attribute_value_assignment.attribute_name = SELF\attribute_value_assignment.attribute_name) AND (ata.translation_language :=: translation_language) ))>1 )) =0; WR5 : SIZEOF(QUERY(ci <* items | SIZEOF(QUERY(ata <* USEDIN(ci, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ata\attribute_classification_assignment.role.name='primary') AND (ata\attribute_classification_assignment.attribute_name= SELF\attribute_value_assignment.attribute_name) AND (ata\attribute_classification_assignment.assigned_class :=: translation_language) ))>0 )) =0; END_ENTITY; ENTITY multiple_arity_boolean_expression ABSTRACT SUPERTYPE SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF boolean_expression; END_ENTITY; ENTITY multiple_arity_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:?] OF generic_expression; END_ENTITY; ENTITY multiple_arity_numeric_expression ABSTRACT SUPERTYPE SUBTYPE OF (numeric_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression; END_ENTITY; ENTITY name_assignment ABSTRACT SUPERTYPE; assigned_name : 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 name_attribute; attribute_value : label; named_item : name_attribute_select; END_ENTITY; ENTITY named_unit SUPERTYPE OF ((ONEOF (si_unit, conversion_based_unit, context_dependent_unit) ANDOR ONEOF (length_unit, mass_unit, time_unit, electric_current_unit, thermodynamic_temperature_unit, amount_of_substance_unit, luminous_flux_unit, luminous_intensity_unit, plane_angle_unit, solid_angle_unit, ratio_unit))); dimensions : dimensional_exponents; END_ENTITY; ENTITY next_assembly_usage_occurrence SUBTYPE OF (assembly_component_usage); END_ENTITY; ENTITY non_manifold_surface_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.FACE_BASED_SURFACE_MODEL', '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.FACE_BASED_SURFACE_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * 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.'+ 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY (mr_it <* mi\mapped_item.mapping_source.mapped_representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (mr_it)))) > 0 )))) = 0; WR4 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (SIZEOF (['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.ORIENTED_FACE'] * TYPEOF (fa)) = 1))) = 0))) = 0))) = 0; WR5 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (f_sf <* QUERY (fa <* cfs.cfs_faces | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fa))) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (f_sf)) OR (nmsf_surface_check(f_sf\face_surface.face_geometry))))) = 0))) = 0))) = 0; WR6 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (o_fa <* QUERY (fa <* cfs.cfs_faces | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (fa))) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (o_fa\oriented_face.face_element)) OR (nmsf_surface_check (o_fa\oriented_face.face_element\face_surface.face_geometry))))) = 0))) = 0))) = 0; WR7 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (bnds <* fa.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 (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; WR8 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items| 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR9 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) | NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <* elp_fbnds\path.edge_list | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) | NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE', '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.CURVE_REPLICA', '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.OFFSET_CURVE_3D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE', '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'] * TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0)))) = 0))) = 0))) = 0; WR10 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list | NOT (nmsf_curve_check (oe.edge_element\edge_curve.edge_geometry)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR11 : SIZEOF (QUERY(fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe.edge_element.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe.edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0; WR12 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.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\path.edge_list | NOT ((SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF (oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1 )))) = 0))) = 0)))) = 0))) = 0))) = 0; WR13 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.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\vertex_loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0; WR14 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) | NOT (SIZEOF (QUERY (cfs <* fbsm\face_based_surface_model.fbsm_faces | NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa)) OR (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) = 1))) = 0)))) = 0))) = 0))) = 0; END_ENTITY; ENTITY null_representation_item SUBTYPE OF (representation_item); END_ENTITY; ENTITY numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, multiple_arity_numeric_expression)) SUBTYPE OF (expression); DERIVE is_int : LOGICAL := is_int_expr (SELF); sql_mappable : LOGICAL := is_SQL_mappable (SELF); END_ENTITY; ENTITY object_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY offset_curve_2d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; WHERE WR1 : basis_curve.dim = 2; END_ENTITY; ENTITY offset_curve_3d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; ref_direction : direction; WHERE WR1 : (basis_curve.dim = 3) AND (ref_direction.dim = 3); END_ENTITY; ENTITY offset_surface SUBTYPE OF (surface); basis_surface : surface; distance : length_measure; self_intersect : LOGICAL; END_ENTITY; ENTITY one_direction_repeat_factor SUBTYPE OF (geometric_representation_item); repeat_factor : vector; END_ENTITY; ENTITY open_shell SUBTYPE OF (connected_face_set); END_ENTITY; ENTITY ordinal_date SUBTYPE OF (date); day_component : day_in_year_number; WHERE WR1 : (NOT leap_year(SELF.year_component) AND { 1 <= day_component <= 365 }) OR (leap_year(SELF.year_component) AND { 1 <= day_component <= 366 }); END_ENTITY; ENTITY ordinate_dimension SUBTYPE OF (projection_directed_callout); END_ENTITY; ENTITY organization; id : OPTIONAL identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY organization_assignment ABSTRACT SUPERTYPE; assigned_organization : organization; role : organization_role; END_ENTITY; ENTITY organization_relationship; name : label; description : OPTIONAL text; relating_organization : organization; related_organization : organization; END_ENTITY; ENTITY organization_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 organizational_address SUBTYPE OF (address); organizations : SET [1:?] OF organization; description : OPTIONAL text; END_ENTITY; ENTITY organizational_project; name : label; description : OPTIONAL text; responsible_organizations : SET [1:?] OF organization; 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 organizational_project_assignment ABSTRACT SUPERTYPE; assigned_organizational_project : organizational_project; role : organizational_project_role; END_ENTITY; ENTITY organizational_project_relationship; name : label; description : OPTIONAL text; relating_organizational_project : organizational_project; related_organizational_project : organizational_project; END_ENTITY; ENTITY organizational_project_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY oriented_closed_shell SUBTYPE OF (closed_shell); closed_shell_element : closed_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF.closed_shell_element.cfs_faces); WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (SELF.closed_shell_element)); END_ENTITY; ENTITY oriented_edge SUBTYPE OF (edge); edge_element : edge; orientation : BOOLEAN; DERIVE SELF\edge.edge_end : vertex := boolean_choose (SELF.orientation, SELF.edge_element.edge_end, SELF.edge_element.edge_start); SELF\edge.edge_start : vertex := boolean_choose (SELF.orientation, SELF.edge_element.edge_start, SELF.edge_element.edge_end); WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_EDGE' IN TYPEOF (SELF.edge_element)); END_ENTITY; ENTITY oriented_face SUBTYPE OF (face); face_element : face; orientation : BOOLEAN; DERIVE SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(SELF.orientation,SELF.face_element.bounds); WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (SELF.face_element)); END_ENTITY; ENTITY oriented_open_shell SUBTYPE OF (open_shell); open_shell_element : open_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF.open_shell_element.cfs_faces); WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF (SELF.open_shell_element)); END_ENTITY; ENTITY oriented_path SUBTYPE OF (path); path_element : path; orientation : BOOLEAN; DERIVE SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation, SELF.path_element.edge_list); WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (SELF.path_element)); END_ENTITY; ENTITY oriented_surface SUBTYPE OF (surface); orientation : BOOLEAN; END_ENTITY; ENTITY outer_boundary_curve SUBTYPE OF (boundary_curve); END_ENTITY; ENTITY over_riding_styled_item SUBTYPE OF (styled_item); over_ridden_style : styled_item; END_ENTITY; ENTITY package_product_concept_feature SUBTYPE OF (product_concept_feature); WHERE WR1 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF ( SELF ) ); WR2 : SIZEOF ( QUERY ( cfr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.' +'RELATING_PRODUCT_CONCEPT_FEATURE' ) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF (cfr ) ) AND ( SIZEOF ( QUERY ( ipcf <* USEDIN ( cfr , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' ) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ipcf ) ) )= 1 ) ) )>0; END_ENTITY; ENTITY parabola SUBTYPE OF (conic); focal_dist : length_measure; WHERE WR1 : focal_dist <> 0.0; END_ENTITY; ENTITY parallel_offset SUBTYPE OF (derived_shape_aspect); offset : measure_with_unit; WHERE WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; END_ENTITY; ENTITY parallelism_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) < 3; END_ENTITY; ENTITY parametric_representation_context SUBTYPE OF (representation_context); END_ENTITY; ENTITY part_laminate_table SUPERTYPE OF (ONEOF (composite_assembly_table, ply_laminate_table)) SUBTYPE OF (laminate_table); END_ENTITY; ENTITY partial_document_with_structured_text_representation_assignment SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object); END_ENTITY; ENTITY path SUPERTYPE OF (ONEOF (edge_loop, oriented_path)) SUBTYPE OF (topological_representation_item); edge_list : LIST [1:?] OF UNIQUE oriented_edge; WHERE WR1 : path_head_to_tail(SELF); END_ENTITY; ENTITY pcurve SUBTYPE OF (curve); 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 percentage_laminate_definition SUBTYPE OF (product_definition); WHERE WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF (pdr))) > 0; END_ENTITY; ENTITY percentage_laminate_table SUBTYPE OF (zone_structural_makeup); END_ENTITY; ENTITY percentage_ply_definition SUBTYPE OF (product_definition); WHERE WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERCENTAGE_LAMINATE_DEFINITION' IN TYPEOF (pdr.related_product_definition)) AND (pdr.name = 'makeup and properties'))) = 0; END_ENTITY; ENTITY perpendicular_to SUBTYPE OF (derived_shape_aspect); WHERE WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; END_ENTITY; ENTITY perpendicularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3; END_ENTITY; ENTITY person; id : identifier; last_name : OPTIONAL label; first_name : OPTIONAL label; middle_names : OPTIONAL LIST [1:?] OF label; prefix_titles : OPTIONAL LIST [1:?] OF label; suffix_titles : OPTIONAL LIST [1:?] OF label; WHERE WR1 : EXISTS(last_name) OR EXISTS(first_name); END_ENTITY; ENTITY person_and_organization; the_person : person; the_organization : organization; 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.' + '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 person_and_organization_address SUBTYPE OF (organizational_address, personal_address); SELF\organizational_address.organizations : SET [1:1] OF organization; SELF\personal_address.people : SET [1:1] OF person; WHERE WR1 : SIZEOF(QUERY(pao <* USEDIN (SELF\personal_address.people[1], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON') | pao.the_organization :=: SELF\organizational_address.organizations[1])) = 1; END_ENTITY; ENTITY person_and_organization_assignment ABSTRACT SUPERTYPE; assigned_person_and_organization : person_and_organization; role : person_and_organization_role; END_ENTITY; ENTITY person_and_organization_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 personal_address SUBTYPE OF (address); people : SET [1:?] OF person; description : OPTIONAL text; END_ENTITY; ENTITY physical_breakdown_context SUBTYPE OF (breakdown_context); END_ENTITY; ENTITY physical_element_usage SUBTYPE OF (breakdown_element_usage); END_ENTITY; ENTITY picture_representation SUBTYPE OF (presentation_view); SELF\representation.items : SET [2:?] OF picture_representation_item_select; INVERSE size: presentation_size FOR unit; WHERE WR1: SIZEOF(QUERY(item <* items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) = 1; WR2: SIZEOF (QUERY (se <* QUERY (item <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (item))) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PICTURE_REPRESENTATION_ITEM' IN TYPEOF (se\styled_item.item)) )) = 0; END_ENTITY; ENTITY picture_representation_item ABSTRACT SUPERTYPE OF (ONEOF (externally_defined_picture_representation_item, predefined_picture_representation_item)) SUBTYPE OF (bytes_representation_item); END_ENTITY; ENTITY placed_datum_target_feature SUBTYPE OF (datum_target); DERIVE representation_associations : SET [0:?] OF property_definition_representation := get_shape_aspect_property_definition_representations(SELF); WHERE WR1 : SELF.description IN ['point','line','rectangle','circle', 'circular line']; WR2 : SIZEOF (QUERY (pdr <* representation_associations | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF (pdr.used_representation) )) = 1; WR3 : valid_datum_target_parameters(SELF); END_ENTITY; ENTITY placed_feature SUBTYPE OF (shape_aspect); END_ENTITY; ENTITY placement SUPERTYPE OF (ONEOF (axis1_placement, axis2_placement_2d, axis2_placement_3d)) SUBTYPE OF (geometric_representation_item); location : cartesian_point; END_ENTITY; ENTITY planar_box SUBTYPE OF (planar_extent); placement : axis2_placement; END_ENTITY; ENTITY planar_extent SUBTYPE OF (geometric_representation_item); size_in_x : length_measure; size_in_y : length_measure; END_ENTITY; ENTITY plane SUBTYPE OF (elementary_surface); END_ENTITY; ENTITY plane_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY plane_angle_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 = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY plus_minus_tolerance; range : tolerance_method_definition; toleranced_dimension : dimensional_characteristic; UNIQUE UR1 : toleranced_dimension; END_ENTITY; ENTITY ply_laminate_definition SUBTYPE OF (product_definition); WHERE WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF (pdr))) = 1; END_ENTITY; ENTITY ply_laminate_sequence_definition SUBTYPE OF (product_definition); WHERE WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF (pdr))) > 0; END_ENTITY; ENTITY ply_laminate_table SUBTYPE OF (part_laminate_table); END_ENTITY; ENTITY point SUPERTYPE OF (ONEOF (cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve)) SUBTYPE OF (geometric_representation_item); END_ENTITY; ENTITY point_and_vector SUBTYPE OF (compound_representation_item, geometric_representation_item); SELF\compound_representation_item.item_element : point_and_vector_members; END_ENTITY; ENTITY point_on_curve SUBTYPE OF (point); basis_curve : curve; point_parameter : parameter_value; END_ENTITY; ENTITY point_on_surface SUBTYPE OF (point); basis_surface : surface; point_parameter_u : parameter_value; point_parameter_v : parameter_value; END_ENTITY; ENTITY point_path SUBTYPE OF (compound_representation_item, geometric_representation_item); SELF\compound_representation_item.item_element : point_path_members; END_ENTITY; ENTITY point_replica SUBTYPE OF (point); parent_pt : point; transformation : cartesian_transformation_operator; WHERE WR1 : transformation.dim = parent_pt.dim; WR2 : acyclic_point_replica (SELF,parent_pt); END_ENTITY; ENTITY point_style SUBTYPE OF (founded_item); name : label; marker : marker_select; marker_size : size_select; marker_colour : colour; END_ENTITY; ENTITY polar_complex_number_literal SUBTYPE OF (generic_literal); radius : REAL; angle : REAL; WHERE WR1 : radius >= 0; WR2 : { 0 <= angle < 2*PI }; END_ENTITY; ENTITY poly_loop SUBTYPE OF (loop, geometric_representation_item); polygon : LIST [3:?] OF UNIQUE cartesian_point; END_ENTITY; ENTITY polyline SUBTYPE OF (bounded_curve); points : LIST [2:?] OF cartesian_point; END_ENTITY; ENTITY position_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)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3); END_ENTITY; ENTITY positioned_sketch SUBTYPE OF (geometric_representation_item); sketch_basis : sketch_basis_select; auxiliary_elements : SET [0:?] OF auxiliary_geometric_representation_item; WHERE WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sketch_basis)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(sketch_basis\curve_bounded_surface.basis_surface))); WR2 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(sketch_basis\face_surface.face_geometry))); WR3 : SIZEOF(QUERY(q <* auxiliary_elements | (SIZEOF(TYPEOF(q) * ['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.CURVE']) = 0))) = 0; WR4 : SIZEOF(QUERY(q <* auxiliary_elements | q\geometric_representation_item.dim <> 3)) = 0; END_ENTITY; ENTITY power_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY power_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.watt); END_ENTITY; ENTITY pre_defined_colour SUBTYPE OF (pre_defined_item, colour); END_ENTITY; ENTITY pre_defined_curve_font SUBTYPE OF (pre_defined_item); END_ENTITY; ENTITY pre_defined_dimension_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1 : SELF.name IN [ 'arc length' , 'conical taper' , 'counterbore' , 'countersink' , 'depth' , 'diameter' , 'plus minus' , 'radius' , 'slope' , 'spherical diameter' , 'spherical radius' , 'square']; END_ENTITY; ENTITY pre_defined_geometrical_tolerance_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1 : SELF.name IN ['angularity' , 'basic dimension' , 'blanked datum reference' , 'circular runout' , 'circularity' , 'concentricity' , 'cylindricity' , 'datum target identification' , 'diameter' , 'filled datum reference' , 'flatness' , 'least material condition' , 'maximum material condition' , 'parallelism' , 'perpendicularity' , 'position' , 'profile of a line' , 'profile of a surface' , 'projected tolerance zone' , 'regardless of feature size' , 'straightness' , 'symmetry' , 'total runout' ]; END_ENTITY; ENTITY pre_defined_item; name : label; END_ENTITY; ENTITY pre_defined_marker SUBTYPE OF (pre_defined_item); END_ENTITY; ENTITY pre_defined_point_marker_symbol SUBTYPE OF (pre_defined_marker, pre_defined_symbol); WHERE WR1 : SELF.name IN ['asterisk','circle','dot','plus','square','triangle','x']; END_ENTITY; ENTITY pre_defined_surface_condition_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1 : SELF.name IN ['000' , '010' , '020' , '030' , '040' , '050' , '060' , '070' , '001' , '011' , '021' , '031' , '041' , '051' , '061' , '071' , '100' , '110' , '120' , '130' , '140' , '150' , '160' , '170' , '101' , '111' , '121' , '131' , '141' , '151' , '161' , '171' , '200' , '210' , '220' , '230' , '240' , '250' , '260' , '270' , '201' , '211' , '221' , '231' , '241' , '251' , '261' , '271']; END_ENTITY; ENTITY pre_defined_surface_side_style SUBTYPE OF (pre_defined_item); END_ENTITY; ENTITY pre_defined_symbol SUBTYPE OF (pre_defined_item); END_ENTITY; ENTITY pre_defined_terminator_symbol SUBTYPE OF (pre_defined_symbol); WHERE WR1 : SELF.name IN ['blanked arrow', 'blanked box', 'blanked dot', 'blanked triangle', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow', 'unfilled triangle', 'filled triangle']; END_ENTITY; ENTITY pre_defined_text_font SUBTYPE OF (pre_defined_item); END_ENTITY; ENTITY pre_defined_tile SUBTYPE OF (pre_defined_item); END_ENTITY; ENTITY precision_qualifier; precision_value : INTEGER; END_ENTITY; ENTITY predefined_picture_representation_item SUBTYPE OF (picture_representation_item); WHERE WR1 : SELF\representation_item.name IN pre_defined_picture_representation_types; END_ENTITY; ENTITY presentation_area SUBTYPE OF (presentation_representation); WHERE WR1 : ((SIZEOF (QUERY (ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'AREA_IN_SET.AREA') | SIZEOF (USEDIN (ais, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT')) =1)) > 0) OR (SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_SIZE.UNIT')) =1)); END_ENTITY; ENTITY presentation_layer_assignment; name : label; description : text; assigned_items : SET [1:?] OF layered_item; END_ENTITY; ENTITY presentation_representation SUPERTYPE OF (ONEOF (presentation_area, presentation_view)) SUBTYPE OF (representation); SELF\representation.context_of_items : geometric_representation_context; WHERE WR1 : SELF\representation. context_of_items\geometric_representation_context. coordinate_space_dimension = 2; WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_AREA' IN TYPEOF (SELF)) OR (SIZEOF (QUERY (prr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF (prr\representation_relationship.rep_1))) > 0) OR (SIZEOF(QUERY( rm <* USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'REPRESENTATION_MAP.'+ 'MAPPED_REPRESENTATION') | SIZEOF(QUERY( mi <* USEDIN(rm, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM.'+ 'MAPPING_SOURCE') | SIZEOF(QUERY( rep <* using_representations (mi) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRESENTATION_REPRESENTATION' IN TYPEOF (rep))) > 0 )) > 0)) > 0); END_ENTITY; ENTITY presentation_set; INVERSE areas: SET [1:?] OF area_in_set FOR in_set; END_ENTITY; ENTITY presentation_size; unit : presentation_size_assignment_select; size : planar_box; UNIQUE UR1 : unit; WHERE WR1 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF (SELF.unit)) AND item_in_context (SELF.size, SELF.unit\representation.context_of_items) ) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_IN_SET' IN TYPEOF (SELF.unit)) AND (SIZEOF (QUERY ( ais <* SELF.unit\area_in_set.in_set.areas | NOT item_in_context (SELF.size, ais.area\representation. context_of_items) )) = 0)); END_ENTITY; ENTITY presentation_style_assignment SUBTYPE OF (founded_item); styles : SET [1:?] OF presentation_style_select; WHERE WR1 : SIZEOF (QUERY (style1 <* SELF.styles | NOT (SIZEOF (QUERY (style2 <* (SELF.styles - style1) | NOT ((TYPEOF (style1) <> TYPEOF (style2)) OR (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SURFACE_STYLE_USAGE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EXTERNALLY_DEFINED_STYLE'] * TYPEOF (style1)) = 1) ))) = 0 ))) = 0; WR2 : SIZEOF (QUERY (style1 <* SELF.styles | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style1) )) <= 2; WR3 : SIZEOF (QUERY (style1 <* SELF.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style1)) AND (SIZEOF (QUERY (style2 <* (SELF.styles - style1) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style2)) AND ((style1\surface_style_usage.side = both) OR (style2\surface_style_usage.side = both) OR (style1\surface_style_usage.side = style2\surface_style_usage.side)) )) > 0))) = 0; END_ENTITY; ENTITY presentation_style_by_context SUBTYPE OF (presentation_style_assignment); style_context : style_context_select; END_ENTITY; ENTITY presentation_view SUBTYPE OF (presentation_representation); END_ENTITY; ENTITY presented_item ABSTRACT SUPERTYPE; END_ENTITY; ENTITY presented_item_representation; presentation : presentation_representation_select; item : presented_item; END_ENTITY; ENTITY pressure_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY pressure_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.pascal); END_ENTITY; ENTITY procedural_representation SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF procedural_representation_sequence; END_ENTITY; ENTITY procedural_representation_sequence SUBTYPE OF (representation_item); elements : LIST [1:?] OF representation_item; suppressed_items : SET [0:?] OF representation_item; rationale : text; WHERE WR1 : SIZEOF(QUERY(q <* suppressed_items | NOT (q IN elements))) = 0; END_ENTITY; ENTITY procedural_shape_representation SUBTYPE OF (procedural_representation, shape_representation); SELF\representation.items : SET [1:?] OF procedural_shape_representation_sequence; END_ENTITY; ENTITY procedural_shape_representation_sequence SUBTYPE OF (geometric_representation_item, procedural_representation_sequence); WHERE WR1 : SIZEOF(QUERY(q <* SELF\procedural_representation_sequence.elements | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM' IN TYPEOF(q)))) = 0; END_ENTITY; ENTITY product; id : identifier; name : label; description : OPTIONAL text; frame_of_reference : SET [1:?] OF product_context; END_ENTITY; ENTITY product_category; name : label; description : OPTIONAL text; 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 product_class SUBTYPE OF (product_concept, characterized_object); END_ENTITY; ENTITY product_concept; id : identifier; name : label; description : OPTIONAL text; market_context : product_concept_context; UNIQUE UR1 : id; END_ENTITY; ENTITY product_concept_context SUBTYPE OF (application_context_element); market_segment_type : label; END_ENTITY; ENTITY product_concept_feature; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY product_concept_feature_association; name : label; description : OPTIONAL text; concept : product_concept; feature : product_concept_feature; END_ENTITY; ENTITY product_concept_feature_category SUBTYPE OF (group); WHERE WR1 : SIZEOF(QUERY ( aga <* USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP' ) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND ( ( aga.role.name <> 'specification category member' ) OR ( SIZEOF(QUERY ( i <* aga.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( i ) ) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF (i)) ) ) <> SIZEOF (aga.items) ) ) ) ) =0; END_ENTITY; ENTITY product_concept_feature_category_usage SUBTYPE OF (group_assignment); items : SET [1:?] OF category_usage_item; SELF\group_assignment.assigned_group : product_concept_feature_category; WHERE WR1 : SELF.role.name IN [ 'mandatory category usage', 'optional category usage' ]; END_ENTITY; ENTITY product_concept_relationship; name : label; description : OPTIONAL text; relating_product_concept : product_concept; related_product_concept : product_concept; END_ENTITY; ENTITY product_context SUBTYPE OF (application_context_element); discipline_type : label; END_ENTITY; ENTITY product_definition SUPERTYPE OF (ONEOF (composite_assembly_definition, composite_assembly_sequence_definition, laminate_table, percentage_laminate_definition, percentage_ply_definition, ply_laminate_definition, ply_laminate_sequence_definition, thickness_laminate_definition)); id : identifier; description : OPTIONAL text; formation : product_definition_formation; frame_of_reference : product_definition_context; DERIVE name : label := get_name_value(SELF); WHERE WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; ENTITY product_definition_context SUBTYPE OF (application_context_element); life_cycle_stage : label; END_ENTITY; ENTITY product_definition_context_association; definition : product_definition; frame_of_reference : product_definition_context; role : product_definition_context_role; END_ENTITY; ENTITY product_definition_context_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY product_definition_effectivity SUBTYPE OF (effectivity); usage : product_definition_relationship; WHERE WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0; END_ENTITY; ENTITY product_definition_element_relationship SUBTYPE OF (group); END_ENTITY; ENTITY product_definition_formation; id : identifier; description : OPTIONAL text; of_product : product; UNIQUE UR1 : id, of_product; END_ENTITY; ENTITY product_definition_formation_relationship; id : identifier; name : label; description : OPTIONAL text; relating_product_definition_formation : product_definition_formation; related_product_definition_formation : product_definition_formation; END_ENTITY; ENTITY product_definition_formation_with_specified_source SUBTYPE OF (product_definition_formation); make_or_buy : source; END_ENTITY; ENTITY product_definition_group_assignment SUBTYPE OF (group_assignment); items : SET [1:1] OF product_definition_or_product_definition_relationship; SELF\group_assignment.assigned_group : product_definition_element_relationship; END_ENTITY; ENTITY product_definition_occurrence_relationship; name : label; description : OPTIONAL text; occurrence : product_definition; occurrence_usage : assembly_component_usage; WHERE WR1 : occurrence_usage.relating_product_definition :<>: occurrence; WR2 : occurrence_usage.related_product_definition :<>: occurrence; WR3 : occurrence.formation :=: occurrence_usage.related_product_definition.formation; END_ENTITY; ENTITY product_definition_relationship; id : identifier; name : label; description : OPTIONAL text; relating_product_definition : product_definition; related_product_definition : product_definition; END_ENTITY; ENTITY product_definition_shape SUBTYPE OF (property_definition); UNIQUE UR1: SELF\property_definition.definition; WHERE WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\property_definition.definition)) > 0; END_ENTITY; ENTITY product_definition_substitute; description : OPTIONAL text; context_relationship : product_definition_relationship; substitute_definition : product_definition; DERIVE name : label := get_name_value(SELF); WHERE WR1 : context_relationship.related_product_definition :<>: substitute_definition; WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; ENTITY product_definition_usage SUPERTYPE OF (ONEOF (make_from_usage_option, assembly_component_usage)) SUBTYPE OF (product_definition_relationship); UNIQUE UR1: SELF\product_definition_relationship.id, SELF\product_definition_relationship.relating_product_definition, SELF\product_definition_relationship.related_product_definition; WHERE WR1 : acyclic_product_definition_relationship (SELF, [SELF\product_definition_relationship.related_product_definition], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_USAGE'); END_ENTITY; ENTITY product_definition_with_associated_documents SUBTYPE OF (product_definition); documentation_ids : SET [1:?] OF document; END_ENTITY; ENTITY product_identification SUBTYPE OF (configuration_item, characterized_object); SELF\configuration_item.item_concept : product_class; WHERE WR1 : SIZEOF(QUERY ( cd <* USEDIN ( SELF ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURATION_DESIGN.CONFIGURATION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF ( cd. design ) ) AND ( SIZEOF ( QUERY ( prpc <* USEDIN ( cd. design\product_definition_formation.of_product , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc. name IN ['part' , 'raw material' , 'tool'] ) ) >0 ) ) ) <=1; WR2 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONFIGURABLE_ITEM' IN TYPEOF( SELF ) ) XOR ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_SPECIFICATION' IN TYPEOF ( SELF ) ); END_ENTITY; ENTITY product_material_composition_relationship SUBTYPE OF (product_definition_relationship); class : label; constituent_amount : SET [1:?] OF characterized_product_composition_value; composition_basis : label; determination_method : text; END_ENTITY; ENTITY product_related_product_category SUBTYPE OF (product_category); products : SET [1:?] OF product; END_ENTITY; ENTITY product_specification SUBTYPE OF (product_identification, configurable_item); END_ENTITY; ENTITY projected_zone_definition SUBTYPE OF (tolerance_zone_definition); projection_end : shape_aspect; projected_length : measure_with_unit; WHERE WR1 : ('NUMBER' IN TYPEOF (projected_length\measure_with_unit.value_component)) AND (projected_length\measure_with_unit.value_component > 0.0); WR2 : (derive_dimensional_exponents (projected_length\measure_with_unit.unit_component)= dimensional_exponents(1,0,0,0,0,0,0)); END_ENTITY; ENTITY projection_curve SUBTYPE OF (annotation_curve_occurrence); END_ENTITY; ENTITY projection_directed_callout SUBTYPE OF (draughting_callout); WHERE WR1 : SIZEOF(QUERY(p_1<*SELF\draughting_callout.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(p_1))))=1; WR2 : SIZEOF(SELF\draughting_callout.contents) >=2; END_ENTITY; ENTITY promissory_usage_occurrence SUBTYPE OF (assembly_component_usage); END_ENTITY; ENTITY property_definition; name : label; description : OPTIONAL text; definition : characterized_definition; 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 property_definition_relationship; name : label; description : text; relating_property_definition : property_definition; related_property_definition : property_definition; END_ENTITY; ENTITY property_definition_representation; definition : represented_definition; used_representation : representation; 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 qualified_representation_item SUBTYPE OF (representation_item); qualifiers : SET [1:?] OF value_qualifier; WHERE WR1 : SIZEOF(QUERY(temp <* qualifiers | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp))) < 2; END_ENTITY; ENTITY qualitative_uncertainty SUBTYPE OF (uncertainty_qualifier); uncertainty_value : text; END_ENTITY; ENTITY quantified_assembly_component_usage SUBTYPE OF (assembly_component_usage); quantity : measure_with_unit; WHERE WR1 : (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); END_ENTITY; ENTITY quasi_uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; ENTITY quasi_uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; ENTITY radioactivity_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY radioactivity_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.becquerel); END_ENTITY; ENTITY radius_dimension SUBTYPE OF (dimension_curve_directed_callout); WHERE WR1 : SIZEOF (QUERY (con <* SELF.contents | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN TYPEOF (con)))<=1; END_ENTITY; ENTITY range_characteristic SUBTYPE OF (representation, descriptive_representation_item); WHERE WR1 : NOT(SELF\representation.name IN ['tolerance', 'minimum tolerance', 'maximum tolerance', 'nominal tolerance', 'plus minus tolerance', 'symmetrical tolerance', 'statistical tolerance']); END_ENTITY; ENTITY ratio_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY ratio_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 = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY rational_b_spline_curve SUBTYPE OF (b_spline_curve); weights_data : LIST [2:?] OF REAL; DERIVE weights : ARRAY [0:upper_index_on_control_points] OF REAL := list_to_array(weights_data,0, upper_index_on_control_points); WHERE WR1 : SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve. control_points_list); WR2 : curve_weights_positive(SELF); END_ENTITY; ENTITY rational_b_spline_surface SUBTYPE OF (b_spline_surface); weights_data : LIST [2:?] OF LIST [2:?] OF REAL; DERIVE weights : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL := make_array_of_array(weights_data,0,u_upper,0,v_upper); WHERE WR1 : (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_surface.control_points_list)) AND (SIZEOF(weights_data[1]) = SIZEOF(SELF\b_spline_surface.control_points_list[1])); WR2 : surface_weights_positive(SELF); END_ENTITY; ENTITY rational_representation_item SUBTYPE OF (representation_item, slash_expression); WHERE WR1 : SIZEOF( QUERY( operand <* SELF\binary_generic_expression.operands | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_LITERAL' IN TYPEOF(operand)))) = 0; END_ENTITY; ENTITY real_literal SUBTYPE OF (literal_number); SELF\literal_number.the_value : REAL; END_ENTITY; ENTITY real_representation_item SUBTYPE OF (representation_item, real_literal); END_ENTITY; ENTITY rectangular_composite_surface SUBTYPE OF (bounded_surface); segments : LIST [1:?] OF LIST [1:?] OF surface_patch; DERIVE n_u : INTEGER := SIZEOF(segments); n_v : INTEGER := SIZEOF(segments[1]); WHERE WR1 : SIZEOF(QUERY (s <* segments | n_v <> SIZEOF (s))) = 0; WR2 : constraints_rectangular_composite_surface(SELF); END_ENTITY; ENTITY rectangular_trimmed_surface SUBTYPE OF (bounded_surface); basis_surface : surface; u1 : parameter_value; u2 : parameter_value; v1 : parameter_value; v2 : parameter_value; usense : BOOLEAN; vsense : BOOLEAN; WHERE WR1 : u1 <> u2; WR2 : v1 <> v2; WR3 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface)) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(basis_surface)))) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface)) OR (usense = (u2 > u1)); WR4 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF(basis_surface)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF(basis_surface))) OR (vsense = (v2 > v1)); END_ENTITY; ENTITY referenced_modified_datum SUBTYPE OF (datum_reference); modifier : limit_condition; END_ENTITY; ENTITY relative_event_occurrence SUBTYPE OF (event_occurrence); base_event : event_occurrence; offset : time_measure_with_unit; END_ENTITY; ENTITY rep_item_group SUBTYPE OF (group, representation_item); WHERE WR1 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0; WR2 : SIZEOF(QUERY(r <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS') | r.name = 'group representation')) > 0; WR3 : SIZEOF(QUERY(ga <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP') | ga.role.name <> 'group membership')) = 0; WR4 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', '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.' + 'STYLED_ITEM'] * TYPEOF(SELF)) = 1; END_ENTITY; ENTITY reparametrised_composite_curve_segment SUBTYPE OF (composite_curve_segment); param_length : parameter_value; WHERE WR1 : param_length > 0.0; END_ENTITY; ENTITY representation; name : label; items : SET [1:?] OF representation_item; context_of_items : representation_context; DERIVE description : text := get_description_value (SELF); 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; WR2 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY representation_context; context_identifier : identifier; context_type : text; INVERSE representations_in_context: SET [1:?] OF representation FOR context_of_items; END_ENTITY; ENTITY representation_item SUPERTYPE OF (ONEOF (binary_representation_item, compound_representation_item, mapped_item, value_representation_item, mapped_item, styled_item, boolean_representation_item, date_representation_item, date_time_representation_item, integer_representation_item, logical_representation_item, rational_representation_item, real_representation_item)); name : label; WHERE WR1 : SIZEOF(using_representations(SELF)) > 0; END_ENTITY; ENTITY representation_item_relationship; name : label; description : OPTIONAL text; relating_representation_item : representation_item; related_representation_item : representation_item; END_ENTITY; ENTITY representation_map; mapping_origin : representation_item; mapped_representation : representation; INVERSE map_usage: SET [1:?] OF mapped_item FOR mapping_source; WHERE WR1 : item_in_context(SELF.mapping_origin, SELF.mapped_representation.context_of_items); END_ENTITY; ENTITY representation_relationship; name : label; description : OPTIONAL text; rep_1 : representation; rep_2 : representation; END_ENTITY; ENTITY representation_relationship_with_transformation SUBTYPE OF (representation_relationship); transformation_operator : transformation; WHERE WR1 : SELF\representation_relationship.rep_1.context_of_items :<>: SELF\representation_relationship.rep_2.context_of_items; END_ENTITY; ENTITY requirement_assigned_object SUBTYPE OF (group_assignment); items : SET [1:1] OF requirement_assigned_item; SELF\group_assignment.assigned_group : requirement_assignment; END_ENTITY; ENTITY requirement_assignment SUBTYPE OF (characterized_object, group); END_ENTITY; ENTITY requirement_source SUBTYPE OF (group); END_ENTITY; ENTITY requirement_view_definition_relationship SUBTYPE OF (product_definition_relationship); END_ENTITY; ENTITY resistance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY resistance_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.ohm); END_ENTITY; ENTITY revolved_area_solid SUBTYPE OF (swept_area_solid); axis : axis1_placement; angle : plane_angle_measure; DERIVE axis_line : line := representation_item('')|| geometric_representation_item()|| curve()|| line(axis.location, representation_item('')|| geometric_representation_item()|| vector(axis.z, 1.0)); END_ENTITY; ENTITY revolved_face_solid SUBTYPE OF (swept_face_solid); axis : axis1_placement; angle : plane_angle_measure; DERIVE axis_line : line := representation_item('')|| geometric_representation_item()|| curve()|| line(axis.location, representation_item('')|| geometric_representation_item()|| vector(axis.z, 1.0)); END_ENTITY; ENTITY revolved_face_solid_with_trim_conditions SUBTYPE OF (revolved_face_solid); first_trim_condition : trim_condition_select; second_trim_condition : trim_condition_select; WHERE WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))); WR2 : NOT((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(first_trim_condition)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(second_trim_condition))) AND (first_trim_condition = second_trim_condition)); END_ENTITY; ENTITY right_angular_wedge SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; x : positive_length_measure; y : positive_length_measure; z : positive_length_measure; ltx : length_measure; WHERE WR1 : ((0.0 <= ltx) AND (ltx < x)); END_ENTITY; ENTITY right_circular_cone SUBTYPE OF (geometric_representation_item); position : axis1_placement; height : positive_length_measure; radius : length_measure; semi_angle : plane_angle_measure; WHERE WR1 : radius >= 0.0; END_ENTITY; ENTITY right_circular_cylinder SUBTYPE OF (geometric_representation_item); position : axis1_placement; height : positive_length_measure; radius : positive_length_measure; END_ENTITY; ENTITY right_to_usage_association SUBTYPE OF (action_method_relationship); SELF\action_method_relationship.related_method : information_right; SELF\action_method_relationship.relating_method : information_usage_right; DERIVE right_applied : information_right := SELF\action_method_relationship.related_method; right_usage : information_usage_right := SELF\action_method_relationship.relating_method; END_ENTITY; ENTITY role_association; role : object_role; item_with_role : role_select; END_ENTITY; ENTITY roundness_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 row_representation_item SUBTYPE OF (compound_representation_item); SELF\compound_representation_item.item_element : list_representation_item; END_ENTITY; ENTITY row_value SUBTYPE OF (compound_representation_item); END_ENTITY; ENTITY row_variable SUBTYPE OF (abstract_variable); END_ENTITY; ENTITY rule_action SUBTYPE OF (action); END_ENTITY; ENTITY rule_condition SUBTYPE OF (atomic_formula); END_ENTITY; ENTITY rule_definition SUBTYPE OF (rule_software_definition); END_ENTITY; ENTITY rule_set SUBTYPE OF (rule_software_definition); END_ENTITY; ENTITY rule_set_group SUBTYPE OF (rule_software_definition); END_ENTITY; ENTITY rule_software_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY rule_superseded_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF rule_superseded_item; END_ENTITY; ENTITY rule_supersedence SUBTYPE OF (rule_action); END_ENTITY; ENTITY ruled_surface_swept_area_solid SUBTYPE OF (surface_curve_swept_area_solid); WHERE WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND (SELF.reference_surface\b_spline_surface.u_degree = 1); WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(SELF.directrix\surface_curve.curve_3d)) AND (SELF.directrix\surface_curve.curve_3d\b_spline_curve.degree = SELF.reference_surface\b_spline_surface.v_degree)); END_ENTITY; ENTITY runout_zone_definition SUBTYPE OF (tolerance_zone_definition); orientation : runout_zone_orientation; END_ENTITY; ENTITY runout_zone_orientation; angle : measure_with_unit; END_ENTITY; ENTITY runout_zone_orientation_reference_direction SUBTYPE OF (runout_zone_orientation); orientation_defining_relationship : shape_aspect_relationship; END_ENTITY; ENTITY satisfied_requirement SUBTYPE OF (group_assignment); items : SET [1:1] OF product_definition; SELF\group_assignment.assigned_group : satisfies_requirement; END_ENTITY; ENTITY satisfies_requirement SUBTYPE OF (group); END_ENTITY; ENTITY satisfying_item SUBTYPE OF (group_assignment); items : SET [1:1] OF requirement_satisfaction_item; SELF\group_assignment.assigned_group : satisfies_requirement; END_ENTITY; ENTITY scalar_variable SUBTYPE OF (abstract_variable); END_ENTITY; ENTITY scattering_parameter SUBTYPE OF (polar_complex_number_literal); WHERE WR1 : SIZEOF(TYPEOF(SELF) - (TYPEOF(SELF\polar_complex_number_literal || SELF\scattering_parameter))) = 0; END_ENTITY; ENTITY sculptured_solid SUBTYPE OF (modified_solid); sculpturing_element : generalized_surface_select; positive_side : BOOLEAN; END_ENTITY; ENTITY seam_curve SUBTYPE OF (surface_curve); WHERE WR1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2; WR2 : associated_surface(SELF\surface_curve.associated_geometry[1]) = associated_surface(SELF\surface_curve.associated_geometry[2]); WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[1]); WR4 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[2]); END_ENTITY; ENTITY security_classification; name : label; purpose : text; security_level : security_classification_level; END_ENTITY; ENTITY security_classification_assignment ABSTRACT SUPERTYPE; assigned_security_classification : security_classification; 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 security_classification_level; name : label; END_ENTITY; ENTITY serial_numbered_effectivity SUBTYPE OF (effectivity); effectivity_start_id : identifier; effectivity_end_id : OPTIONAL identifier; END_ENTITY; ENTITY shape_aspect; name : label; description : OPTIONAL text; of_shape : product_definition_shape; product_definitional : LOGICAL; 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 shape_aspect_associativity SUBTYPE OF (shape_aspect_relationship); WHERE WR1 : SELF.relating_shape_aspect.product_definitional; WR2 : NOT (SELF.related_shape_aspect.product_definitional); END_ENTITY; ENTITY shape_aspect_deriving_relationship SUBTYPE OF (shape_aspect_relationship); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_SHAPE_ASPECT' IN TYPEOF (SELF\SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT); END_ENTITY; ENTITY shape_aspect_relationship; name : label; description : OPTIONAL text; relating_shape_aspect : shape_aspect; related_shape_aspect : shape_aspect; 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 shape_definition_representation SUBTYPE OF (property_definition_representation); WHERE WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.definition)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DEFINITION' IN TYPEOF(SELF.definition.definition)); WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(SELF.used_representation); END_ENTITY; ENTITY shape_dimension_representation SUBTYPE OF (shape_representation); WHERE WR1 : SIZEOF (QUERY (temp <* SELF\representation.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (temp)))) = 0; WR2 : SIZEOF (SELF\representation.items) <= 3; WR3 : SIZEOF (QUERY (pos_mri <* QUERY (real_mri <* SELF\representation.items | 'REAL' IN TYPEOF (real_mri\measure_with_unit.value_component) ) | NOT (pos_mri\measure_with_unit.value_component > 0.0 ))) = 0; END_ENTITY; ENTITY shape_feature_definition SUBTYPE OF (characterized_object); END_ENTITY; ENTITY shape_representation SUBTYPE OF (representation); END_ENTITY; ENTITY shape_representation_relationship SUBTYPE OF (representation_relationship); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN (TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2)); END_ENTITY; ENTITY shape_representation_with_parameters SUBTYPE OF (shape_representation); WHERE WR1 : SIZEOF( QUERY( 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.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1 )) = SIZEOF(SELF.items); END_ENTITY; ENTITY shell_based_surface_model SUBTYPE OF (geometric_representation_item); sbsm_boundary : SET [1:?] OF shell; WHERE WR1 : constraints_geometry_shell_based_surface_model(SELF); END_ENTITY; ENTITY shell_based_wireframe_model SUBTYPE OF (geometric_representation_item); sbwm_boundary : SET [1:?] OF shell; WHERE WR1 : constraints_geometry_shell_based_wireframe_model(SELF); END_ENTITY; ENTITY shell_based_wireframe_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.SHELL_BASED_WIREFRAME_MODEL', '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.SHELL_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1; WR3 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( QUERY ( el <* eloop\path.edge_list| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (el.edge_element)) )) = 0) )) = 0) )) = 0) )) = 0; WR4 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( QUERY ( pline_el <* QUERY ( el <* eloop\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (el.edge_element\edge_curve.edge_geometry)) )| NOT ( SIZEOF (pline_el.edge_element\edge_curve.edge_geometry\polyline.points) > 2) )) = 0) )) = 0) )) = 0) )) = 0; WR5 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( QUERY ( el <* eloop\path.edge_list| NOT valid_wireframe_edge_curve(el.edge_element\edge_curve.edge_geometry) )) = 0) )) = 0) )) = 0) )) = 0; WR6 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( QUERY ( el <* eloop\path.edge_list| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_end))) )) = 0) )) = 0) )) = 0) )) = 0; WR7 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( QUERY ( eloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF ( QUERY ( el <* eloop\path.edge_list| NOT (valid_wireframe_vertex_point(el.edge_element.edge_start\vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(el.edge_element.edge_end\vertex_point.vertex_geometry)) )) = 0) )) = 0) )) = 0) )) = 0; WR8 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vloop\vertex_loop.loop_vertex)) )) = 0) )) = 0) )) = 0; WR9 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( ws <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF ( QUERY ( vloop <* QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT valid_wireframe_vertex_point(vloop\vertex_loop.loop_vertex\vertex_point.vertex_geometry) )) = 0) )) = 0) )) = 0; WR10 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( vs <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vs\vertex_shell.vertex_shell_extent.loop_vertex)) )) = 0) )) = 0; WR11 : SIZEOF ( QUERY ( sbwm <* QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF ( QUERY ( vs <* QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT valid_wireframe_vertex_point(vs\vertex_shell.vertex_shell_extent.loop_vertex\vertex_point.vertex_geometry) )) = 0) )) = 0; WR12 : 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.' + 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0; WR13 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; END_ENTITY; ENTITY shelled_solid SUPERTYPE OF (ONEOF (double_offset_shelled_solid, complex_shelled_solid)) SUBTYPE OF (modified_solid); deleted_face_set : SET [1:?] OF face_surface; thickness : length_measure; WHERE WR1 : thickness <> 0; END_ENTITY; ENTITY si_absorbed_dose_unit SUBTYPE OF (absorbed_dose_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.gray; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_capacitance_unit SUBTYPE OF (capacitance_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.farad; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_conductance_unit SUBTYPE OF (conductance_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.siemens; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_dose_equivalent_unit SUBTYPE OF (dose_equivalent_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.sievert; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_electric_charge_unit SUBTYPE OF (electric_charge_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.coulomb; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_electric_potential_unit SUBTYPE OF (electric_potential_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.volt; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_energy_unit SUBTYPE OF (energy_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.joule; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_force_unit SUBTYPE OF (force_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.newton; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_frequency_unit SUBTYPE OF (frequency_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.hertz; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_illuminance_unit SUBTYPE OF (illuminance_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.lux; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_inductance_unit SUBTYPE OF (inductance_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.henry; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_magnetic_flux_density_unit SUBTYPE OF (magnetic_flux_density_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.tesla; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_magnetic_flux_unit SUBTYPE OF (magnetic_flux_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.weber; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_power_unit SUBTYPE OF (power_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.watt; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_pressure_unit SUBTYPE OF (pressure_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.pascal; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_radioactivity_unit SUBTYPE OF (radioactivity_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.becquerel; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_resistance_unit SUBTYPE OF (resistance_unit, si_unit); WHERE WR1 : SELF\si_unit.name = si_unit_name.ohm; WR2 : NOT EXISTS(SELF\derived_unit.name); END_ENTITY; ENTITY si_unit SUBTYPE OF (named_unit); prefix : OPTIONAL si_prefix; name : si_unit_name; DERIVE SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name); WHERE WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_UNIT' IN TYPEOF(SELF)) AND (SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR (prefix = si_prefix.kilo); END_ENTITY; ENTITY simple_boolean_expression ABSTRACT SUPERTYPE SUBTYPE OF (boolean_expression, simple_generic_expression); END_ENTITY; ENTITY simple_clause SUBTYPE OF (compound_representation_item); END_ENTITY; ENTITY simple_generic_expression ABSTRACT SUPERTYPE OF (ONEOF (generic_literal, generic_variable)) SUBTYPE OF (generic_expression); END_ENTITY; ENTITY simple_numeric_expression ABSTRACT SUPERTYPE SUBTYPE OF (numeric_expression, simple_generic_expression); END_ENTITY; ENTITY slash_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; ENTITY smeared_material_definition SUBTYPE OF (zone_structural_makeup); END_ENTITY; ENTITY solid_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY solid_angle_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 = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY solid_curve_font SUBTYPE OF (pre_defined_curve_font); END_ENTITY; ENTITY solid_model SUPERTYPE OF (ONEOF (csg_solid, manifold_solid_brep, swept_face_solid, swept_area_solid, swept_disk_solid, solid_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; ENTITY solid_replica SUBTYPE OF (solid_model); parent_solid : solid_model; transformation : cartesian_transformation_operator_3d; WHERE WR1 : acyclic_solid_replica(SELF, parent_solid); WR2 : parent_solid\geometric_representation_item.dim = 3; END_ENTITY; ENTITY solid_with_angle_based_chamfer SUBTYPE OF (solid_with_chamfered_edges); offset_distance : positive_length_measure; left_offset : BOOLEAN; offset_angle : positive_plane_angle_measure; END_ENTITY; ENTITY solid_with_chamfered_edges ABSTRACT SUPERTYPE OF (ONEOF (solid_with_single_offset_chamfer, solid_with_double_offset_chamfer, solid_with_angle_based_chamfer)) SUBTYPE OF (edge_blended_solid); END_ENTITY; ENTITY solid_with_circular_pattern SUPERTYPE OF (solid_with_incomplete_circular_pattern) SUBTYPE OF (solid_with_shape_element_pattern); replicate_count : positive_integer; angular_spacing : plane_angle_measure; radial_alignment : BOOLEAN; reference_point : point; END_ENTITY; ENTITY solid_with_circular_pocket SUBTYPE OF (solid_with_pocket); pocket_radius : positive_length_measure; WHERE WR1 : SELF\solid_with_pocket.floor_blend_radius <= pocket_radius; END_ENTITY; ENTITY solid_with_circular_protrusion SUBTYPE OF (solid_with_protrusion); protrusion_radius : positive_length_measure; END_ENTITY; ENTITY solid_with_conical_bottom_round_hole SUBTYPE OF (solid_with_stepped_round_hole); semi_apex_angle : positive_plane_angle_measure; tip_radius : non_negative_length_measure; WHERE WR1 : tip_radius < SELF\solid_with_stepped_round_hole.segment_radii[segments]; END_ENTITY; ENTITY solid_with_constant_radius_edge_blend SUBTYPE OF (edge_blended_solid); radius : positive_length_measure; END_ENTITY; ENTITY solid_with_curved_slot SUBTYPE OF (solid_with_slot); slot_centreline : bounded_curve; END_ENTITY; ENTITY solid_with_depression ABSTRACT SUPERTYPE OF ((solid_with_through_depression ANDOR ONEOF (solid_with_hole, solid_with_pocket, solid_with_slot, solid_with_groove))) SUBTYPE OF (modified_solid_with_placed_configuration); depth : positive_length_measure; END_ENTITY; ENTITY solid_with_double_offset_chamfer SUBTYPE OF (solid_with_chamfered_edges); left_offset_distance : positive_length_measure; right_offset_distance : positive_length_measure; END_ENTITY; ENTITY solid_with_flat_bottom_round_hole SUBTYPE OF (solid_with_stepped_round_hole); fillet_radius : non_negative_length_measure; WHERE WR1 : fillet_radius < SELF\solid_with_stepped_round_hole.segment_radii[segments]; END_ENTITY; ENTITY solid_with_general_pocket SUBTYPE OF (solid_with_pocket); profile : positioned_sketch; reference_point : point; WHERE WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; WR2 : profile IN using_items(reference_point,[]); END_ENTITY; ENTITY solid_with_general_protrusion SUBTYPE OF (solid_with_protrusion); profile : positioned_sketch; reference_point : point; WHERE WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; WR2 : profile IN using_items(reference_point,[]); END_ENTITY; ENTITY solid_with_groove SUBTYPE OF (solid_with_depression); groove_radius : positive_length_measure; groove_width : positive_length_measure; draft_angle : plane_angle_measure; floor_fillet_radius : non_negative_length_measure; external_groove : BOOLEAN; WHERE WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)); END_ENTITY; ENTITY solid_with_hole ABSTRACT SUPERTYPE OF (solid_with_stepped_round_hole) SUBTYPE OF (solid_with_depression); END_ENTITY; ENTITY solid_with_incomplete_circular_pattern SUBTYPE OF (solid_with_circular_pattern); omitted_instances : SET [1:?] OF positive_integer; WHERE WR1 : SIZEOF(omitted_instances) < SELF\solid_with_circular_pattern.replicate_count; WR2 : SIZEOF(QUERY(q <* omitted_instances | q > SELF\solid_with_circular_pattern.replicate_count)) = 0; END_ENTITY; ENTITY solid_with_incomplete_rectangular_pattern SUBTYPE OF (solid_with_rectangular_pattern); omitted_instances : SET [1:?] OF LIST [2:2] OF positive_integer; WHERE WR1 : NOT([1,1] IN omitted_instances); WR2 : SIZEOF(omitted_instances) < ((SELF\solid_with_rectangular_pattern.row_count * SELF\solid_with_rectangular_pattern.column_count) - 1); WR3 : SIZEOF(QUERY(q <* omitted_instances | ((q[1] > SELF\solid_with_rectangular_pattern.row_count) OR (q[2] > SELF\solid_with_rectangular_pattern.column_count)))) = 0; END_ENTITY; ENTITY solid_with_pocket ABSTRACT SUPERTYPE OF (ONEOF (solid_with_rectangular_pocket, solid_with_circular_pocket, solid_with_general_pocket)) SUBTYPE OF (solid_with_depression); floor_blend_radius : non_negative_length_measure; draft_angle : plane_angle_measure; END_ENTITY; ENTITY solid_with_protrusion ABSTRACT SUPERTYPE OF (ONEOF (solid_with_circular_protrusion, solid_with_rectangular_protrusion, solid_with_general_protrusion)) SUBTYPE OF (modified_solid_with_placed_configuration); protrusion_height : positive_length_measure; protrusion_draft_angle : plane_angle_measure; END_ENTITY; ENTITY solid_with_rectangular_pattern SUPERTYPE OF (solid_with_incomplete_rectangular_pattern) SUBTYPE OF (solid_with_shape_element_pattern); row_count : positive_integer; column_count : positive_integer; row_spacing : length_measure; column_spacing : length_measure; WHERE WR1 : (row_count * column_count) > 1; END_ENTITY; ENTITY solid_with_rectangular_pocket SUBTYPE OF (solid_with_pocket); pocket_length : positive_length_measure; pocket_width : positive_length_measure; corner_radius : non_negative_length_measure; WHERE WR1 : (corner_radius < pocket_width/2) AND (corner_radius < pocket_length/2); END_ENTITY; ENTITY solid_with_rectangular_protrusion SUBTYPE OF (solid_with_protrusion); protrusion_length : positive_length_measure; protrusion_width : positive_length_measure; protrusion_corner_radius : non_negative_length_measure; WHERE WR1 : (protrusion_corner_radius <= protrusion_width/2) AND (protrusion_corner_radius <= protrusion_length/2); END_ENTITY; ENTITY solid_with_shape_element_pattern ABSTRACT SUPERTYPE OF (ONEOF (solid_with_circular_pattern, solid_with_rectangular_pattern)) SUBTYPE OF (modified_solid_with_placed_configuration); replicated_element : modified_solid_with_placed_configuration; END_ENTITY; ENTITY solid_with_single_offset_chamfer SUBTYPE OF (solid_with_chamfered_edges); offset_distance : positive_length_measure; END_ENTITY; ENTITY solid_with_slot ABSTRACT SUPERTYPE OF ((ONEOF (solid_with_trapezoidal_section_slot, solid_with_tee_section_slot) AND ONEOF (solid_with_straight_slot, solid_with_curved_slot))) SUBTYPE OF (solid_with_depression); slot_width : positive_length_measure; closed_ends : LIST [2:2] OF LOGICAL; end_exit_faces : LIST [2:2] OF SET [0:?] OF face_surface; WHERE WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) AND (closed_ends = [FALSE,FALSE])); WR2 : NOT(((closed_ends[1] = TRUE) AND (SIZEOF(end_exit_faces[1]) <> 0)) OR ((closed_ends[2] = TRUE) AND (SIZEOF(end_exit_faces[2]) <> 0))); END_ENTITY; ENTITY solid_with_spherical_bottom_round_hole SUBTYPE OF (solid_with_stepped_round_hole); sphere_radius : positive_length_measure; WHERE WR1 : sphere_radius >= SELF\solid_with_stepped_round_hole.segment_radii[segments]; END_ENTITY; ENTITY solid_with_stepped_round_hole SUPERTYPE OF ((solid_with_stepped_round_hole_and_conical_transitions ANDOR ONEOF (solid_with_flat_bottom_round_hole, solid_with_conical_bottom_round_hole, solid_with_spherical_bottom_round_hole))) SUBTYPE OF (solid_with_hole); segments : positive_integer; segment_radii : LIST [1:segments] OF positive_length_measure; segment_depths : LIST [1:segments] OF positive_length_measure; DERIVE SELF\solid_with_depression.depth : positive_length_measure := compute_total_depth(SELF); WHERE WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE']) <> 0)); END_ENTITY; ENTITY solid_with_stepped_round_hole_and_conical_transitions SUBTYPE OF (solid_with_stepped_round_hole); conical_transitions : SET [1:?] OF conical_stepped_hole_transition; WHERE WR1 : SIZEOF (conical_transitions) <= (SELF\solid_with_stepped_round_hole.segments + 1); WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) XOR (SIZEOF(conical_transitions) <= SELF\solid_with_stepped_round_hole.segments); WR3 : validate_countersink_radii(SELF); END_ENTITY; ENTITY solid_with_straight_slot SUBTYPE OF (solid_with_slot); slot_length : positive_length_measure; END_ENTITY; ENTITY solid_with_tee_section_slot SUBTYPE OF (solid_with_slot); tee_section_width : positive_length_measure; collar_depth : positive_length_measure; WHERE WR1 : collar_depth < SELF\solid_with_depression.depth; WR2 : tee_section_width > SELF\solid_with_slot.slot_width; END_ENTITY; ENTITY solid_with_through_depression SUBTYPE OF (solid_with_depression); exit_faces : SET [1:?] OF face_surface; WHERE WR1 : SIZEOF(TYPEOF(SELF) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_HOLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_POCKET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_SLOT']) = 1; END_ENTITY; ENTITY solid_with_trapezoidal_section_slot SUBTYPE OF (solid_with_slot); draft_angle : plane_angle_measure; floor_fillet_radius : non_negative_length_measure; END_ENTITY; ENTITY solid_with_variable_radius_edge_blend SUBTYPE OF (edge_blended_solid, track_blended_solid); point_list : LIST [2:?] OF point; radius_list : LIST [2:?] OF positive_length_measure; edge_function_list : LIST [1:?] OF blend_radius_variation_type; WHERE WR1 : SIZEOF(point_list) = SIZEOF(radius_list); WR2 : SIZEOF(edge_function_list) = SIZEOF(radius_list) - 1; WR3 : NOT((point_list[1] = point_list[HIINDEX(point_list)]) AND NOT (radius_list[1] = radius_list[HIINDEX(radius_list)])); END_ENTITY; ENTITY source_for_requirement SUBTYPE OF (group_assignment); items : SET [1:1] OF requirement_source_item; SELF\group_assignment.assigned_group : requirement_source; END_ENTITY; ENTITY sourced_requirement SUBTYPE OF (group_assignment); items : SET [1:1] OF product_definition; SELF\group_assignment.assigned_group : requirement_source; END_ENTITY; ENTITY specification_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY specified_higher_usage_occurrence SUBTYPE OF (assembly_component_usage); upper_usage : assembly_component_usage; next_usage : next_assembly_usage_occurrence; UNIQUE UR1 : upper_usage, next_usage; WHERE WR1 : SELF :<>: upper_usage; WR2 : SELF\product_definition_relationship.relating_product_definition :=: upper_usage.relating_product_definition; WR3 : SELF\product_definition_relationship.related_product_definition :=: next_usage.related_product_definition; WR4 : (upper_usage.related_product_definition :=: next_usage.relating_product_definition) OR (SIZEOF (QUERY (pdr <* USEDIN (upper_usage.related_product_definition, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION') | pdr.relating_product_definition :=: next_usage.relating_product_definition)) = 1); WR5 : SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE'] * TYPEOF(upper_usage)) = 1; END_ENTITY; ENTITY sphere SUBTYPE OF (geometric_representation_item); radius : positive_length_measure; centre : point; END_ENTITY; ENTITY spherical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; ENTITY standard_uncertainty SUPERTYPE OF (expanded_uncertainty) SUBTYPE OF (uncertainty_qualifier); uncertainty_value : REAL; END_ENTITY; ENTITY start_request SUBTYPE OF (action_request_assignment); items : SET [1:?] OF start_request_item; END_ENTITY; ENTITY start_work SUBTYPE OF (action_assignment); items : SET [1:?] OF work_item; END_ENTITY; ENTITY straightness_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 structured_dimension_callout SUBTYPE OF (draughting_callout); WHERE WR1 : SIZEOF (TYPEOF (SELF) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_FEATURE_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_TARGET_CALLOUT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRICAL_TOLERANCE_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']) = 0; WR2 : SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (con))) | NOT (ato.name IN ['dimension value', 'tolerance value', 'unit text', 'prefix text', 'suffix text']))) = 0; WR3 : SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF (con))) | (ato.name = 'dimension value') )) >= 1; WR4 : SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND (dcr.name = 'prefix') )) <= 1; WR5 : SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND (dcr.name = 'suffix') )) <= 1; WR6 : NOT((SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) ) | (ato.name = 'prefix text') )) > 0)) OR (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND (dcr.name = 'prefix') )) = 1); WR7 : NOT(SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | (ato.name = 'suffix text') )) > 0) OR (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT') | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND (dcr.name = 'suffix') )) = 1); END_ENTITY; ENTITY structured_text_composition SUBTYPE OF (compound_representation_item); END_ENTITY; ENTITY structured_text_representation SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF string_representation_item_select; END_ENTITY; ENTITY styled_item SUBTYPE OF (representation_item); styles : SET [1:?] OF presentation_style_assignment; item : representation_item; WHERE WR1 : (SIZEOF(SELF.styles) = 1) XOR (SIZEOF(QUERY(pres_style <* SELF.styles | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(pres_style)) )) = 0); END_ENTITY; ENTITY subedge SUBTYPE OF (edge); parent_edge : edge; END_ENTITY; ENTITY subface SUBTYPE OF (face); parent_face : face; WHERE WR1 : NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF)) + list_to_set(list_face_loops(parent_face)))); END_ENTITY; ENTITY supplied_part_relationship SUBTYPE OF (product_definition_relationship); END_ENTITY; ENTITY surface SUPERTYPE OF (ONEOF (elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; ENTITY surface_condition_callout SUBTYPE OF (draughting_callout); WHERE WR1 : SIZEOF ( QUERY ( c <* SELF.contents | SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_CURVE_OCCURRENCE' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_SYMBOL_OCCURRENCE' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_TEXT_OCCURRENCE']* TYPEOF ( c ) ) <>1 ) ) =0; END_ENTITY; ENTITY surface_curve SUPERTYPE OF ((ONEOF (intersection_curve, seam_curve) ANDOR bounded_surface_curve)) SUBTYPE OF (curve); curve_3d : curve; associated_geometry : LIST [1:2] OF pcurve_or_surface; master_representation : preferred_surface_curve_representation; DERIVE basis_surface : SET [1:2] OF surface := get_basis_surface(SELF); WHERE WR1 : curve_3d.dim = 3; WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> pcurve_s1); WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> pcurve_s2); WR4 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(curve_3d)); END_ENTITY; ENTITY surface_curve_swept_area_solid SUBTYPE OF (swept_area_solid); directrix : curve; start_param : REAL; end_param : REAL; reference_surface : surface; WHERE WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR (reference_surface IN (directrix\surface_curve.basis_surface)); END_ENTITY; ENTITY surface_of_linear_extrusion SUBTYPE OF (swept_surface); extrusion_axis : vector; END_ENTITY; ENTITY surface_of_revolution SUBTYPE OF (swept_surface); axis_position : axis1_placement; DERIVE axis_line : line := representation_item('')|| geometric_representation_item()|| curve()|| line(axis_position.location, representation_item('')|| geometric_representation_item()|| vector(axis_position.z, 1.0)); END_ENTITY; ENTITY surface_patch SUBTYPE OF (founded_item); parent_surface : bounded_surface; u_transition : transition_code; v_transition : transition_code; u_sense : BOOLEAN; v_sense : BOOLEAN; INVERSE using_surfaces: BAG [1:?] OF rectangular_composite_surface FOR segments; WHERE WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(parent_surface))); END_ENTITY; ENTITY surface_profile_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)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3); END_ENTITY; ENTITY surface_rendering_properties; rendered_colour : colour; END_ENTITY; ENTITY surface_replica SUBTYPE OF (surface); parent_surface : surface; transformation : cartesian_transformation_operator_3d; WHERE WR1 : acyclic_surface_replica(SELF, parent_surface); END_ENTITY; ENTITY surface_side_style SUBTYPE OF (founded_item); name : label; styles : SET [1:7] OF surface_style_element_select; WHERE WR1 : SIZEOF(QUERY( style1 <* SELF.styles | SIZEOF(QUERY( style2 <* SELF.styles - style1 | TYPEOF(style1) = TYPEOF(style2) )) > 0 )) = 0; END_ENTITY; ENTITY surface_style_boundary SUBTYPE OF (founded_item); style_of_boundary : curve_or_render; END_ENTITY; ENTITY surface_style_control_grid SUBTYPE OF (founded_item); style_of_control_grid : curve_or_render; END_ENTITY; ENTITY surface_style_fill_area SUBTYPE OF (founded_item); fill_area : fill_area_style; END_ENTITY; ENTITY surface_style_parameter_line SUBTYPE OF (founded_item); style_of_parameter_lines : curve_or_render; direction_counts : SET [1:2] OF direction_count_select; WHERE WR1 : (HIINDEX(SELF.direction_counts) = 1) XOR (TYPEOF(SELF.direction_counts[1]) <> TYPEOF(SELF.direction_counts[2])); END_ENTITY; ENTITY surface_style_reflectance_ambient; ambient_reflectance : REAL; END_ENTITY; ENTITY surface_style_reflectance_ambient_diffuse SUBTYPE OF (surface_style_reflectance_ambient); diffuse_reflectance : REAL; END_ENTITY; ENTITY surface_style_reflectance_ambient_diffuse_specular SUBTYPE OF (surface_style_reflectance_ambient_diffuse); specular_reflectance : REAL; specular_exponent : REAL; specular_colour : colour; END_ENTITY; ENTITY surface_style_rendering; rendering_method : shading_surface_method; surface_colour : colour; END_ENTITY; ENTITY surface_style_rendering_with_properties SUBTYPE OF (surface_style_rendering); properties : SET [1:2] OF rendering_properties_select; WHERE WR1 : (HIINDEX(SELF.properties) = 1) XOR (TYPEOF(SELF.properties[1]) <> TYPEOF(SELF.properties[2])); END_ENTITY; ENTITY surface_style_segmentation_curve SUBTYPE OF (founded_item); style_of_segmentation_curve : curve_or_render; END_ENTITY; ENTITY surface_style_silhouette SUBTYPE OF (founded_item); style_of_silhouette : curve_or_render; END_ENTITY; ENTITY surface_style_transparent; transparency : REAL; WHERE WR1 : {0.0 <= transparency <= 1.0}; END_ENTITY; ENTITY surface_style_usage SUBTYPE OF (founded_item); side : surface_side; style : surface_side_style_select; END_ENTITY; ENTITY surface_texture_representation SUBTYPE OF (representation); WHERE WR1 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) <>1 ) ) =0; WR2 : ( SIZEOF ( QUERY ( i <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) ) =1 ) AND ( SIZEOF ( QUERY ( i <* SELF.items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name = 'measuring method' ) ) ) =1 ); WR3 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) ) >0; WR4 : ( SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_1' ) ) <=1 ) AND ( SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_2' ) ) =0 ) AND ( SIZEOF ( QUERY ( rr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_1' ) | rr. rep_2.name = 'measuring direction' ) ) = SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+ 'REP_1' ) ) ); WR5 : ( SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr. definition , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND ( gpa. base_definition.name ='surface_condition' ) ) ) =1 ) ) =1 ); END_ENTITY; ENTITY surfaced_open_shell SUBTYPE OF (open_shell); WHERE WR1 : SIZEOF(QUERY(q <* SELF\connected_face_set.cfs_faces | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(q)))) = 0; END_ENTITY; ENTITY swept_area_solid SUPERTYPE OF (ONEOF (revolved_area_solid, extruded_area_solid, surface_curve_swept_area_solid)) SUBTYPE OF (solid_model); swept_area : curve_bounded_surface; WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(swept_area.basis_surface); END_ENTITY; ENTITY swept_disk_solid SUBTYPE OF (solid_model); directrix : curve; radius : positive_length_measure; inner_radius : OPTIONAL positive_length_measure; start_param : REAL; end_param : REAL; WHERE WR1 : directrix.dim = 3; WR2 : (NOT EXISTS(inner_radius)) OR (radius > inner_radius); END_ENTITY; ENTITY swept_face_solid SUPERTYPE OF (ONEOF (extruded_face_solid, revolved_face_solid)) SUBTYPE OF (solid_model); swept_face : face_surface; WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(swept_face.face_geometry); END_ENTITY; ENTITY swept_surface SUPERTYPE OF (ONEOF (surface_of_linear_extrusion, surface_of_revolution)) SUBTYPE OF (surface); swept_curve : curve; END_ENTITY; ENTITY symbol SUBTYPE OF (representation_item); END_ENTITY; ENTITY symbol_colour; colour_of_symbol : colour; END_ENTITY; ENTITY symbol_representation SUBTYPE OF (representation); END_ENTITY; ENTITY symbol_representation_map SUBTYPE OF (representation_map); SELF\representation_map.mapped_representation : symbol_representation; SELF\representation_map.mapping_origin : axis2_placement; END_ENTITY; ENTITY symbol_style SUBTYPE OF (founded_item); name : label; style_of_symbol : symbol_style_select; END_ENTITY; ENTITY symbol_target SUBTYPE OF (geometric_representation_item); placement : axis2_placement; x_scale : positive_ratio_measure; y_scale : positive_ratio_measure; END_ENTITY; ENTITY symmetric_shape_aspect SUBTYPE OF (shape_aspect); INVERSE basis_relationships: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE WR1 : SIZEOF (QUERY (x<*SELF\symmetric_shape_aspect.basis_relationships | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CENTRE_OF_SYMMETRY' IN TYPEOF (x\shape_aspect_relationship.related_shape_aspect)))>=1; END_ENTITY; ENTITY symmetry_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3; END_ENTITY; ENTITY table_representation_item SUBTYPE OF (compound_representation_item); WHERE WR1 : SIZEOF(QUERY(itet <* SELF\compound_representation_item.item_element | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet)) )) = 0; END_ENTITY; ENTITY tactile_appearance_representation SUBTYPE OF (representation); WHERE WR1 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) <>1 )) =0; WR2 : SIZEOF ( QUERY ( i <* SELF.items | name ='depth' ) ) <=1; WR3 : ( SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr. definition , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND ( gpa. base_definition.name ='surface_condition' ) ) ) =1 )) =1 ); END_ENTITY; ENTITY tagged_text_format SUBTYPE OF (representation_context); END_ENTITY; ENTITY tagged_text_item SUBTYPE OF (descriptive_representation_item); END_ENTITY; ENTITY tangent SUBTYPE OF (derived_shape_aspect); WHERE WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1; END_ENTITY; ENTITY terminator_symbol SUBTYPE OF (annotation_symbol_occurrence); annotated_curve : annotation_curve_occurrence; END_ENTITY; ENTITY text_font; id : identifier; name : label; description : text; INVERSE glyphs: SET [1:?] OF character_glyph_font_usage FOR font; END_ENTITY; ENTITY text_font_family; id : identifier; name : label; description : text; INVERSE fonts: SET [1:?] OF text_font_in_family FOR family; END_ENTITY; ENTITY text_font_in_family; font : text_font; family : text_font_family; END_ENTITY; ENTITY text_literal SUBTYPE OF (geometric_representation_item); literal : presentable_text; placement : axis2_placement; alignment : text_alignment; path : text_path; font : font_select; END_ENTITY; ENTITY text_literal_with_associated_curves SUBTYPE OF (text_literal); associated_curves : SET [1:?] OF curve; END_ENTITY; ENTITY text_literal_with_blanking_box SUBTYPE OF (text_literal); blanking : planar_box; END_ENTITY; ENTITY text_literal_with_delineation SUBTYPE OF (text_literal); delineation : text_delineation; END_ENTITY; ENTITY text_literal_with_extent SUBTYPE OF (text_literal); extent : planar_extent; END_ENTITY; ENTITY text_string_representation SUBTYPE OF (representation); SELF\representation.items : SET [1:?] OF text_string_representation_item; WHERE WR1 : SIZEOF ( QUERY (item <* SELF\representation.items | NOT (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 (item)) = 0) )) >= 1; WR2 : SIZEOF ( QUERY (a2p <* QUERY (item <* SELF\representation.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF (item)) | NOT ((SIZEOF ( QUERY (at <* QUERY (item <* SELF\representation.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ANNOTATION_TEXT' IN TYPEOF (item)) | (at\mapped_item.mapping_target :=: a2p))) >= 1) OR (SIZEOF ( QUERY (atc <* QUERY (item <* SELF\representation.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ANNOTATION_TEXT_CHARACTER' IN TYPEOF (item)) | (atc\mapped_item.mapping_target :=: a2p))) >= 1) ))) = 0; END_ENTITY; ENTITY text_style SUBTYPE OF (founded_item); name : label; character_appearance : character_style_select; END_ENTITY; ENTITY text_style_for_defined_font; text_colour : colour; END_ENTITY; ENTITY text_style_with_box_characteristics SUBTYPE OF (text_style); characteristics : SET [1:4] OF box_characteristic_select; WHERE WR1 : SIZEOF( QUERY( c1 <* SELF.characteristics | SIZEOF( QUERY( c2 <* SELF.characteristics - c1 | TYPEOF (c1) = TYPEOF (c2) )) > 0 )) = 0; END_ENTITY; ENTITY text_style_with_mirror SUBTYPE OF (text_style); mirror_placement : axis2_placement; END_ENTITY; ENTITY text_style_with_spacing SUBTYPE OF (text_style); character_spacing : character_spacing_select; END_ENTITY; ENTITY thermal_resistance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY thermal_resistance_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensional_exponents ( -1.0, -1.0, -3.0, 0.0, 1.0, 0.0, 0.0 ); END_ENTITY; ENTITY thermodynamic_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 thermodynamic_temperature_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 = 1.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 thickened_face_solid SUBTYPE OF (solid_model); base_element : generalized_surface_select; offset1 : length_measure; offset2 : length_measure; WHERE WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(base_element)) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(base_element)))); WR2 : offset1 <> offset2; END_ENTITY; ENTITY thickness_laminate_definition SUBTYPE OF (product_definition); WHERE WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF (pdr))) = 1; END_ENTITY; ENTITY thickness_laminate_table SUBTYPE OF (zone_structural_makeup); END_ENTITY; ENTITY time_interval; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY time_interval_assignment ABSTRACT SUPERTYPE; assigned_time_interval : time_interval; role : time_interval_role; END_ENTITY; ENTITY time_interval_based_effectivity SUBTYPE OF (effectivity); effectivity_period : time_interval; END_ENTITY; ENTITY time_interval_relationship; name : label; description : OPTIONAL text; relating_time_interval : time_interval; related_time_interval : time_interval; END_ENTITY; ENTITY time_interval_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY time_interval_with_bounds SUBTYPE OF (time_interval); primary_bound : OPTIONAL date_time_or_event_occurrence; secondary_bound : OPTIONAL date_time_or_event_occurrence; duration : OPTIONAL time_measure_with_unit; WHERE WR1 : NOT (EXISTS(secondary_bound) AND EXISTS(duration)); WR2 : EXISTS(primary_bound) OR EXISTS(secondary_bound); END_ENTITY; ENTITY time_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY time_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 = 1.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 tolerance_value; lower_bound : measure_with_unit; upper_bound : measure_with_unit; DERIVE lbvc : REAL := lower_bound\measure_with_unit.value_component; ubvc : REAL := upper_bound\measure_with_unit.value_component; WHERE WR1 : ubvc > lbvc; WR2 : upper_bound\measure_with_unit.unit_component = lower_bound\measure_with_unit.unit_component; END_ENTITY; ENTITY tolerance_zone SUBTYPE OF (shape_aspect); defining_tolerance : SET [1:?] OF geometric_tolerance; form : tolerance_zone_form; END_ENTITY; ENTITY tolerance_zone_definition SUPERTYPE OF (ONEOF (projected_zone_definition, runout_zone_definition)); zone : tolerance_zone; boundaries : SET [1:?] OF shape_aspect; END_ENTITY; ENTITY tolerance_zone_form; name : label; END_ENTITY; ENTITY topological_representation_item SUPERTYPE OF (ONEOF (vertex, edge, face_bound, face, vertex_shell, wire_shell, connected_edge_set, connected_face_set, (loop ANDOR path))) SUBTYPE OF (representation_item); END_ENTITY; ENTITY toroidal_surface SUBTYPE OF (elementary_surface); major_radius : positive_length_measure; minor_radius : positive_length_measure; END_ENTITY; ENTITY torus SUBTYPE OF (geometric_representation_item); position : axis1_placement; major_radius : positive_length_measure; minor_radius : positive_length_measure; WHERE WR1 : major_radius > minor_radius; END_ENTITY; ENTITY total_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2; END_ENTITY; ENTITY track_blended_solid ABSTRACT SUPERTYPE OF (track_blended_solid_with_end_conditions) SUBTYPE OF (edge_blended_solid); WHERE WR1 : check_continuous_edges(SELF\edge_blended_solid.blended_edges); END_ENTITY; ENTITY track_blended_solid_with_end_conditions SUBTYPE OF (track_blended_solid); end_conditions : LIST [2:2] OF blend_end_condition_select; WHERE WR1 : SIZEOF(TYPEOF(SELF) * ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_CHAMFERED_EDGES']) = 1; WR2 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2]))); WR3 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) AND (NOT ((end_conditions[1] :=: SELF\edge_blended_solid.blended_edges[1].edge_start) XOR (end_conditions[1] :=: SELF\edge_blended_solid.blended_edges[1].edge_end)))); WR4 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2])) AND (NOT ((end_conditions[2] :=: SELF\edge_blended_solid.blended_edges[HIINDEX( SELF\edge_blended_solid.blended_edges)].edge_start) XOR (end_conditions[2] :=: SELF\edge_blended_solid.blended_edges[HIINDEX( SELF\edge_blended_solid.blended_edges)].edge_end)))); END_ENTITY; ENTITY transformation_with_derived_angle SUPERTYPE OF (ONEOF (draped_defined_transformation, laid_defined_transformation)) SUBTYPE OF (item_defined_transformation); SELF\item_defined_transformation.transform_item_1 : angle_direction_reference_with_a2p3d_select; SELF\item_defined_transformation.transform_item_2 : axis2_placement_3d; DERIVE orientation_angle : plane_angle_measure := derive_angle ( SELF\item_defined_transformation.transform_item_1, SELF\item_defined_transformation.transform_item_2); WHERE WR1 : (SELF\item_defined_transformation.transform_item_1\ axis2_placement_3d.p[3].direction_ratios[1] = SELF\item_defined_transformation.transform_item_2\ axis2_placement_3d.p[3].direction_ratios[1]) AND (SELF\item_defined_transformation.transform_item_1\ axis2_placement_3d.p[3].direction_ratios[2] = SELF\item_defined_transformation.transform_item_2\ axis2_placement_3d.p[3].direction_ratios[2]) AND (SELF\item_defined_transformation.transform_item_1\ axis2_placement_3d.p[3].direction_ratios[3] = SELF\item_defined_transformation.transform_item_2\ axis2_placement_3d.p[3].direction_ratios[3]); END_ENTITY; ENTITY trimmed_curve SUBTYPE OF (bounded_curve); basis_curve : curve; trim_1 : SET [1:2] OF trimming_select; trim_2 : SET [1:2] OF trimming_select; sense_agreement : BOOLEAN; master_representation : trimming_preference; WHERE WR1 : (HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2])); WR2 : (HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2])); END_ENTITY; ENTITY two_direction_repeat_factor SUBTYPE OF (one_direction_repeat_factor); second_repeat_factor : vector; END_ENTITY; ENTITY type_qualifier; name : label; END_ENTITY; ENTITY unary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operand : generic_expression; END_ENTITY; ENTITY unary_numeric_expression ABSTRACT SUPERTYPE SUBTYPE OF (numeric_expression, unary_generic_expression); SELF\unary_generic_expression.operand : numeric_expression; END_ENTITY; ENTITY uncertainty_assigned_representation SUBTYPE OF (representation); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; ENTITY uncertainty_measure_with_unit SUBTYPE OF (measure_with_unit); name : label; description : OPTIONAL text; WHERE WR1 : valid_measure_value (SELF\measure_with_unit.value_component); END_ENTITY; ENTITY uncertainty_qualifier SUPERTYPE OF (ONEOF (standard_uncertainty, qualitative_uncertainty)); measure_name : label; description : text; END_ENTITY; ENTITY uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; ENTITY uniform_resource_identifier SUBTYPE OF (descriptive_representation_item); END_ENTITY; ENTITY uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; ENTITY usage_association SUBTYPE OF (action_method_relationship); SELF\action_method_relationship.related_method : information_usage_right; SELF\action_method_relationship.relating_method : information_usage_right; DERIVE related : information_usage_right := SELF\action_method_relationship.related_method; relating : information_usage_right := SELF\action_method_relationship.relating_method; END_ENTITY; ENTITY user_defined_curve_font SUBTYPE OF (curve_style_font, mapped_item); END_ENTITY; ENTITY user_defined_marker SUBTYPE OF (mapped_item, pre_defined_marker); END_ENTITY; ENTITY user_defined_terminator_symbol SUBTYPE OF (mapped_item, pre_defined_symbol); END_ENTITY; ENTITY user_selected_elements SUBTYPE OF (representation_item); picked_items : SET [1:?] OF representation_item; END_ENTITY; ENTITY user_selected_shape_elements SUBTYPE OF (user_selected_elements); WHERE WR1 : SIZEOF(QUERY(q <* SELF\user_selected_elements.picked_items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM' IN TYPEOF(q)))) = 0; END_ENTITY; ENTITY value_range SUBTYPE OF (compound_representation_item); WHERE WR1 : ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SET_REPRESENTATION_ITEM' IN TYPEOF ( item_element ) ) AND value_range_wr1 ( item_element ); WR2 : value_range_wr2 ( item_element ); WR3 : value_range_wr3 ( item_element ); END_ENTITY; ENTITY value_representation_item SUBTYPE OF (representation_item); value_component : measure_value; WHERE WR1 : SIZEOF (QUERY (rep <* using_representations (SELF) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF (rep.context_of_items) ))) = 0; END_ENTITY; ENTITY variable_semantics ABSTRACT SUPERTYPE; END_ENTITY; ENTITY variational_representation_item ABSTRACT SUPERTYPE OF (auxiliary_geometric_representation_item) SUBTYPE OF (representation_item); WHERE WR1 : SIZEOF(QUERY(q <* using_representations(SELF) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VARIATIONAL_REPRESENTATION' IN TYPEOF(q)))) = 0; WR2 : SIZEOF(QUERY(q <* using_representations(SELF) | NOT (SELF IN q.items))) = 0; END_ENTITY; ENTITY vector SUBTYPE OF (geometric_representation_item); orientation : direction; magnitude : length_measure; WHERE WR1 : magnitude >= 0.0; END_ENTITY; ENTITY vector_style SUBTYPE OF (curve_style, pre_defined_terminator_symbol); END_ENTITY; ENTITY velocity_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VELOCITY_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY velocity_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensional_exponents ( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ); END_ENTITY; ENTITY versioned_action_request; id : identifier; version : label; purpose : text; description : OPTIONAL text; END_ENTITY; ENTITY vertex SUBTYPE OF (topological_representation_item); END_ENTITY; ENTITY vertex_loop SUBTYPE OF (loop); loop_vertex : vertex; END_ENTITY; ENTITY vertex_point SUBTYPE OF (vertex, geometric_representation_item); vertex_geometry : point; END_ENTITY; ENTITY vertex_shell SUBTYPE OF (topological_representation_item); vertex_shell_extent : vertex_loop; END_ENTITY; ENTITY view_volume SUBTYPE OF (founded_item); projection_type : central_or_parallel; projection_point : cartesian_point; view_plane_distance : length_measure; front_plane_distance : length_measure; front_plane_clipping : BOOLEAN; back_plane_distance : length_measure; back_plane_clipping : BOOLEAN; view_volume_sides_clipping : BOOLEAN; view_window : planar_box; END_ENTITY; ENTITY visual_appearance_representation SUBTYPE OF (representation); WHERE WR1 : ( {3<= SIZEOF ( SELF.items ) <=9} ) AND ( SIZEOF ( QUERY ( i <* items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name IN [ 'colour id' , 'colour name' , 'lustre' , 'pattern' , 'transparency', 'orientation'] ) ) ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) AND ( i.name IN ['refraction index' , 'opacity'] ) ) ) + SIZEOF ( QUERY ( i <* items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DOCUMENT_FILE' IN TYPEOF ( i ) ) AND ( i.name IN [ 'texture map' ] ) ) ) = SIZEOF ( SELF.items ) ); WR2 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour id' )) =1; WR3 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='lustre' ) )=1; WR4 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour name') ) <=1; WR5 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='pattern' ) )<=1; WR6 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='transparency') ) <=1; WR7 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'texture map') ) <=1; WR8 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='refraction index' ) )<=1; WR9 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='opacity') ) <=1; WR10 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='orientation') ) <=1; WR11 : ( SIZEOF ( USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+ 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN ( pdr. definition , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+ 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND ( gpa. base_definition.name ='surface_condition' ) ) ) =1 )) =1 ); END_ENTITY; ENTITY volume_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY volume_unit SUBTYPE OF (derived_unit); WHERE WR1 : derive_dimensional_exponents(SELF) = dimensional_exponents ( 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); END_ENTITY; ENTITY week_of_year_and_day_date SUBTYPE OF (date); week_component : week_in_year_number; day_component : OPTIONAL day_in_week_number; END_ENTITY; ENTITY wire_shell SUBTYPE OF (topological_representation_item); wire_shell_extent : SET [1:?] OF loop; WHERE WR1 : NOT mixed_loop_type_set(wire_shell_extent); END_ENTITY; ENTITY year_month SUBTYPE OF (date); month_component : month_in_year_number; END_ENTITY; ENTITY zone_structural_makeup SUPERTYPE OF (ONEOF ((smeared_material_definition AND thickness_laminate_table), (smeared_material_definition AND percentage_laminate_table), thickness_laminate_table, percentage_laminate_table, smeared_material_definition)) SUBTYPE OF (laminate_table); END_ENTITY; RULE alternative_solution_requires_solution_definition FOR (product_definition_formation); LOCAL solution_versions: SET OF product_definition_formation := []; END_LOCAL; solution_versions := QUERY( pdf <* product_definition_formation | SIZEOF( QUERY( prpc <* USEDIN(pdf.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'alternative solution')) = 1); WHERE WR1 : SIZEOF( QUERY( pdf <* solution_versions | SIZEOF( QUERY( pd <* USEDIN(pdf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'alternative definition')) <> 1))= 0; END_RULE; RULE application_protocol_definition_required FOR (application_context); WHERE WR1 : SIZEOF( QUERY( ac <* application_context | (SIZEOF (QUERY (apd <* USEDIN(ac,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') | apd.application_interpreted_model_schema_name = 'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies' )) > 0) )) > 0; END_RULE; RULE breakdown_element_requires_product_definition FOR (product_definition_formation); WHERE WR1 : SIZEOF ( QUERY ( pdf <* product_definition_formation | ( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc.name = 'functionality' ) ) = 1 ) AND ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'functional definition' ) ) <1 ) ) ) = 0; WR2 : SIZEOF ( QUERY ( pdf <* product_definition_formation | ( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc.name = 'conceptual design' ) ) = 1 ) AND ( SIZEOF (QUERY ( pd <* USEDIN ( pdf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) | pd.frame_of_reference.name = 'conceptual definition' ) ) <1) ) ) = 0; END_RULE; RULE compatible_dimension FOR (cartesian_point, direction, representation_context, geometric_representation_context); WHERE WR1 : SIZEOF(QUERY(x <* cartesian_point| SIZEOF(QUERY (y <* geometric_representation_context | item_in_context(x,y) AND (HIINDEX(x.coordinates) <> y.coordinate_space_dimension))) > 0 )) =0; WR2 : SIZEOF(QUERY(x <* direction | SIZEOF( QUERY (y <* geometric_representation_context | item_in_context(x,y) AND (HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension))) > 0 )) = 0; END_RULE; RULE component_class_for_assembly_select FOR (composite_assembly_sequence_definition, next_assembly_usage_occurrence, product_related_product_category); LOCAL i,j,k : INTEGER :=0; dkuhr : LOGICAL :=TRUE; nnauo : INTEGER :=0; nprpc : INTEGER :=0; rp : product; END_LOCAL; REPEAT i:= LOINDEX (composite_assembly_sequence_definition) TO HIINDEX (composite_assembly_sequence_definition); nnauo := 0; REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO HIINDEX (next_assembly_usage_occurrence); IF (composite_assembly_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition) THEN rp := next_assembly_usage_occurrence[j].related_product_definition. formation.of_product; nprpc := 0; REPEAT k:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF ((rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN ['ply', 'ply laminate', 'filament laminate', 'processed core', 'composite assembly'])) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nnauo := nnauo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF(nnauo = 0) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE WR1 : dkuhr; END_RULE; RULE consistent_uncertainty FOR (global_uncertainty_assigned_context, qualified_representation_item, uncertainty_assigned_representation); WHERE WR1 : SIZEOF ( QUERY ( guac <* global_uncertainty_assigned_context | SIZEOF ( QUERY ( u1 <* guac.uncertainty | SIZEOF ( QUERY ( u2 <* guac.uncertainty | u2.name = u1.name ) ) >1 ) ) >0 ) ) = 0; WR2 : SIZEOF ( QUERY ( uar <* uncertainty_assigned_representation | SIZEOF ( QUERY ( u1<* uar.uncertainty | SIZEOF ( QUERY ( u2 <* uar.uncertainty | u2.name = u1.name ) ) >1 ) ) >0 ) ) = 0; WR3 : SIZEOF ( QUERY ( qri <* qualified_representation_item | SIZEOF ( QUERY ( u1 <* qri.qualifiers | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.UNCERTAINTY_QUALIFIER' IN TYPEOF ( u1 ) ) AND ( SIZEOF ( QUERY ( u2 <* qri.qualifiers | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.UNCERTAINTY_QUALIFIER' IN TYPEOF ( u2 ) ) AND ( u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name ) ) ) >1 ) ) ) >0 ) ) = 0; END_RULE; RULE constraint_definition_requires_constraint_category FOR (product_definition); LOCAL constraint_definitions: SET OF product_definition := []; END_LOCAL; constraint_definitions := QUERY( pd <* product_definition | (pd.frame_of_reference.name = 'design constraint definition')); WHERE WR1 : SIZEOF ( QUERY ( pd <* constraint_definitions | ( SIZEOF ( QUERY ( prpc <* USEDIN ( pd.formation.of_product , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc. name ='requirement' ) ) =0 ) ) ) =0; END_RULE; RULE design_constraint_requires_product_definition FOR (product_definition_formation); WHERE WR1 : SIZEOF ( QUERY ( pdf <* product_definition_formation | ( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc.name = 'requirement' ) ) >0 ) AND ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'design constraint definition' ) ) <1 ) ) ) = 0; END_RULE; RULE draughting_model_items_constraint FOR (draughting_model); WHERE WR1 : SIZEOF(QUERY(dm <* draughting_model | NOT(SIZEOF(QUERY(it1 <* dm\representation.items | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF(it1)) AND NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' IN TYPEOF(it1))) )) = 0) )) = 0; WR2 : SIZEOF(QUERY(dm <* draughting_model | NOT(SIZEOF(QUERY(it1 <* dm\representation.items | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(it1)) AND NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF(it1))) )) = 0) )) = 0; END_RULE; RULE external_version_assignments_are_valid FOR (applied_external_identification_assignment); WHERE WR1 : SIZEOF(QUERY(aia <* applied_external_identification_assignment | NOT external_version_assignment_is_valid(aia)))=0; END_RULE; RULE material_for_coating_layer FOR (shape_aspect); LOCAL coating_layers: SET OF shape_aspect := []; END_LOCAL; coating_layers:= QUERY( r <* shape_aspect | (r.name = 'coating layer') ); WHERE WR1 : SIZEOF( QUERY( r <* coating_layers | SIZEOF(USEDIN(r , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS'))<>1 )) = 0; END_RULE; RULE plib_property_reference_requires_name_scope FOR (externally_defined_general_property); LOCAL known_sourced_properties : SET OF externally_defined_general_property; END_LOCAL; known_sourced_properties := QUERY( edc <* externally_defined_general_property | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source) ); WHERE WR1 : SIZEOF ( QUERY ( edgp <* known_sourced_properties | ( SIZEOF ( QUERY ( edir <* USEDIN ( edgp, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' )| ( edir.name = 'name scope' ) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_DEFINED_CLASS' IN TYPEOF ( edir.related_item ) ) AND ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF ( edir.related_item.source ) ) ) ) <>1 ) ) ) = 0; END_RULE; RULE plib_property_reference_requires_version FOR (externally_defined_general_property); LOCAL plib_properties : SET OF externally_defined_general_property := []; END_LOCAL; plib_properties := QUERY ( edgp <* externally_defined_general_property | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF ( edgp.source ) ) AND ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' + '.NAME' = 'ISO 13584 library' ) ); WHERE WR1 : SIZEOF( QUERY( edgp <* plib_properties | (SIZEOF( QUERY( edir <* USEDIN(edgp, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') | (edir.role.name = 'version') )) <> 1) )) = 0; END_RULE; RULE ply_reference FOR (ply_laminate_sequence_definition, next_assembly_usage_occurrence, product_related_product_category); LOCAL i,j,k : INTEGER; dkuhr : LOGICAL := TRUE; nnauo : INTEGER; nprpc : INTEGER := 0; rp : product; END_LOCAL; REPEAT i:= LOINDEX (ply_laminate_sequence_definition) TO HIINDEX (ply_laminate_sequence_definition); nnauo := 0; REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO HIINDEX (next_assembly_usage_occurrence); IF (ply_laminate_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition) THEN rp := next_assembly_usage_occurrence[j].related_product_definition. formation.of_product; nprpc := 0; REPEAT k:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF ((product_related_product_category[k].name = 'ply') AND (rp IN product_related_product_category[k].products)) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nnauo := nnauo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF(nnauo = 0) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE WR1 : dkuhr; END_RULE; RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option); LOCAL i,j,k,kp : INTEGER; dkuhr : LOGICAL; nmfuo : INTEGER; nprpc : INTEGER := 0; rp : product; END_LOCAL; dkuhr := TRUE; REPEAT kp:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF (product_related_product_category[kp].name = 'ply') THEN REPEAT i:= LOINDEX (product_related_product_category[kp].products) TO HIINDEX (product_related_product_category[kp].products); nmfuo := 0; REPEAT j:= LOINDEX (make_from_usage_option) TO HIINDEX (make_from_usage_option); rp := make_from_usage_option[j].related_product_definition. formation.of_product; IF (product_related_product_category[kp].products[i] = rp) THEN REPEAT k:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF ((rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN ['isotropic material', 'filament assembly', 'discontinuous fiber assembly'])) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nmfuo := nmfuo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF(nmfuo <> 1) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; END_IF; END_REPEAT; WHERE WR1 : dkuhr; END_RULE; RULE product_concept_feature_requires_category FOR (product_concept_feature); WHERE WR1 : SIZEOF ( QUERY ( pcf <* product_concept_feature | (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0) AND (SIZEOF ( QUERY ( aga <* USEDIN ( pcf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) | ( aga.role.name = 'specification category member' ) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF ( aga.assigned_group )))) <>1 ) ) ) = 0; END_RULE; RULE product_definition_replacement_requires_effectivity_assignment FOR (product_definition_relationship); WHERE WR1 : SIZEOF( QUERY( pdr <* product_definition_relationship | (pdr.name = 'definition replacement') AND (SIZEOF( USEDIN(pdr,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS') ) = 0) )) = 0; END_RULE; RULE restrict_alternative_definition FOR (product_definition); LOCAL solution_definitions: SET OF product_definition := []; END_LOCAL; solution_definitions := QUERY( pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition')); WHERE WR1 : SIZEOF ( QUERY ( pd <* solution_definitions | ( SIZEOF ( QUERY ( pdr <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | pdr.name = 'solution alternative definition' ) ) <>1 ) ) ) = 0; WR2 : SIZEOF ( QUERY ( pd <* solution_definitions | NOT ( pd.name IN ['technical' , 'supplier' , 'technical supplier' , ''] ) ) ) = 0; WR3 : SIZEOF ( QUERY ( pd <* solution_definitions | ( pd.name IN ['supplier' , 'technical supplier'] ) AND ( SIZEOF ( QUERY ( aoa <* USEDIN ( pd.formation , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS' ) | aoa.role.name = 'supplier' )) <>1 ) )) = 0; END_RULE; RULE restrict_assembly_category FOR (product_definition); LOCAL assembly_definitions: SET OF product_definition := []; END_LOCAL; assembly_definitions := QUERY( pd <* product_definition | SIZEOF( QUERY( pdca <* USEDIN( pd, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name= 'assembly definition')) > 0 ); WHERE WR1 : SIZEOF( QUERY( pd <* assembly_definitions | NOT ('assembly' IN categories_of_product(pd.formation.of_product)) ))= 0; END_RULE; RULE restrict_centre_of_mass_representation FOR (representation); WHERE WR1 : SIZEOF ( QUERY ( r <* representation | ( r.name ='centre of mass' ) AND ( ( SIZEOF ( r.items ) <>1 ) OR (SIZEOF ( QUERY ( i <* r.items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POINT' IN TYPEOF ( i ) ) AND ( i.name = 'centre point' ) )) <>1 ) ) ) ) =0; END_RULE; RULE restrict_classification_assignments FOR (applied_classification_assignment); WHERE WR1 : SIZEOF(QUERY(aia <* applied_classification_assignment | NOT class_assignment_is_valid(aia)))=0; END_RULE; RULE restrict_collection_category FOR (product_definition); LOCAL collection_definitions: SET OF product_definition := []; END_LOCAL; collection_definitions := QUERY( pd <* product_definition | SIZEOF( QUERY( pdca <* USEDIN( pd, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name= 'collection definition')) > 0 ); WHERE WR1 : SIZEOF( QUERY( pd <* collection_definitions | NOT ('collection' IN categories_of_product(pd.formation.of_product)) ))= 0; END_RULE; RULE restrict_concept_feature_operator FOR (concept_feature_operator); WHERE WR1 : SIZEOF ( QUERY ( cfo <* concept_feature_operator | NOT ( cfo.name IN ['and' , 'or' , 'oneof' , 'not' , 'implication'] ) ) ) = 0; WR2 : SIZEOF ( QUERY ( cfo <* concept_feature_operator | (cfo.name = 'implication' ) AND ( SIZEOF ( QUERY (cfrwc <* USEDIN ( cfo , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + 'CONDITIONAL_OPERATOR' ) | SIZEOF ( QUERY ( ccf <* USEDIN( cfrwc , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ccf )))) >0 )) >0 ))) = 0; WR3 : SIZEOF( QUERY (cfo <* concept_feature_operator | (cfo.name = 'not') AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') | cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) >0 ))) = 0; END_RULE; RULE restrict_configuration_design_for_class_breakdown_association FOR (configuration_design); WHERE WR1 : SIZEOF ( QUERY ( cd <* configuration_design | ( cd.name ='functionality' ) AND ( NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd. design ) ) OR ( cd.design\product_definition.frame_of_reference.name<> 'functional definition' ) ) ) ) =0; WR2 : SIZEOF ( QUERY ( cd <* configuration_design | ( cd.name='realization' ) AND ( NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR ( cd.design\product_definition.frame_of_reference.name<> 'conceptual definition' ) ) ) ) =0; WR3 : SIZEOF ( QUERY ( cd <* configuration_design | ( cd.name IN ['functionality' , 'realization'] ) AND ( NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CLASS' IN TYPEOF ( cd.configuration.item_concept ) ) ) ) ) =0; END_RULE; RULE restrict_configuration_design_for_design_constraint FOR (configuration_design); WHERE WR1 : SIZEOF ( QUERY (cd <* configuration_design | (cd.name = 'design constraint usage') AND (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR (cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0; END_RULE; RULE restrict_group_relationship_for_classification_hierarchy FOR (group_relationship); WHERE WR1 : SIZEOF( QUERY( gr <* group_relationship | (gr\group_relationship.name = 'class hierarchy') AND (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.relating_group))) )) = 0; END_RULE; RULE restrict_group_relationship_for_specification_category FOR (group_relationship); WHERE WR1 : SIZEOF( QUERY( gr <* group_relationship | (gr.name = 'specification category hierarchy') AND (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group)) OR NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))) )) = 0; END_RULE; RULE restrict_language_assignment_per_attribute FOR (attribute_language_assignment); WHERE WR1 : SIZEOF ( QUERY ( ala1 <* attribute_language_assignment | SIZEOF(QUERY( it <* ala1.items | SIZEOF ( QUERY ( ala2 <* USEDIN ( it ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS' ) | ( ala1\attribute_classification_assignment.attribute_name = ala2\attribute_classification_assignment.attribute_name ) AND ( ala1\attribute_classification_assignment.assigned_class :=: ala2\attribute_classification_assignment.assigned_class ) )) >1 )) >0 )) =0; END_RULE; RULE restrict_part_occurrence FOR (product_definition); LOCAL part_occurrences: SET OF product_definition := QUERY(pd <* product_definition | ( pd.frame_of_reference.name = 'part occurrence' )); END_LOCAL; WHERE WR1 : SIZEOF ( QUERY ( pd <* part_occurrences | ( NOT( pd.name IN ['single instance' , 'selected instance' ,'quantified instance' , 'specified instance' ] ) ) ) ) = 0; WR2 : SIZEOF ( QUERY ( pd <* part_occurrences | (SIZEOF ( QUERY ( pdr <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | pdr.name = 'definition usage' ) ) <>1 ) AND ( SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) | ( cd.name = 'occurrence usage definition' ) AND ( NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF( cd.configuration ) ) ) ) ) <>1 ) ) ) = 0; WR3 : SIZEOF ( QUERY ( pd <* part_occurrences | (SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PRODUCT_DEFINITION_USAGE' IN TYPEOF ( cd ) ) ) ) = 0 )AND ( SIZEOF ( USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) ) = 0 ) ) ) = 0; WR4 : SIZEOF ( QUERY ( pd <* part_occurrences | ( pd.name = 'selected instance' ) AND NOT valid_selected_instance_representation(pd) ))=0; WR5 : SIZEOF ( QUERY ( pd <* part_occurrences | ( pd.name = 'quantified instance' ) AND ( SIZEOF ( QUERY (ppd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PROPERTY_DEFINITION.DEFINITION' ) | ( ppd.name ='occurrence quantity' ) AND ( SIZEOF ( QUERY ( pdr <*USEDIN ( ppd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( pdr.used_representation.name = 'quantity' ) AND (SIZEOF ( pdr.used_representation.items ) = 1 ) AND (SIZEOF ( QUERY ( i <* pdr.used_representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name = 'quantity measure' ) ) ) = 1)))= 1 )))= 0 )))= 0; WR6 : SIZEOF ( QUERY ( pd <* part_occurrences | ( pd.name = 'specified instance' ) AND ( SIZEOF ( QUERY ( pdor <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF ( pdor.occurrence_usage ) ) ) = 0 ) ) ) = 0; END_RULE; RULE restrict_part_occurrence_category FOR (product_definition); LOCAL part_occurrences: SET OF product_definition := QUERY( pd <* product_definition |( pd.frame_of_reference.name = 'part occurrence')); END_LOCAL; WHERE WR1 : SIZEOF( QUERY( pd <* part_occurrences | (SIZEOF( QUERY( prpc <* USEDIN(pd.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name IN ['part','raw material','tool'] )) = 0 ) )) = 0; END_RULE; RULE restrict_product_definitions_for_base_element FOR (product_definition_relationship); WHERE WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'solution alternative definition' ) AND ( NOT( pdr. relating_product_definition.frame_of_reference.name IN [ 'alternative definition' , 'functional definition' , 'conceptual definition' ] ) OR ( pdr.related_product_definition.frame_of_reference.name<>'alternative definition' ) ) ) ) =0; END_RULE; RULE restrict_product_definitions_for_collection FOR (product_definition_relationship); WHERE WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'collection membership' ) AND ( ( pdr.relating_product_definition.frame_of_reference.name<>'part definition' ) OR ( pdr.related_product_definition.frame_of_reference.name<>'part occurrence' ) OR ( SIZEOF ( QUERY ( pdca <* USEDIN (pdr.relating_product_definition , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | ( pdca.role.name = 'part definition type' ) AND ( pdca.frame_of_reference.name = 'collection definition' ) )) =0 ) ) ) ) =0; END_RULE; RULE restrict_product_definitions_for_definition_usage FOR (product_definition_relationship); WHERE WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr.name = 'definition usage' ) AND ( ( pdr.relating_product_definition.frame_of_reference.name<> 'part definition' ) OR ( pdr.related_product_definition.frame_of_reference.name<>'part occurrence' )))) =0; END_RULE; RULE restrict_product_definitions_for_design_constraint_association FOR (product_definition_relationship); WHERE WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'design constraint association' ) AND ( (pdr. relating_product_definition.frame_of_reference.name<>'design constraint definition' ) OR NOT ( pdr.related_product_definition.frame_of_reference.name IN ['alternative definition' , 'functional definition' ,'conceptual definition' ] ) ) ) ) =0; END_RULE; RULE restrict_product_definitions_for_part_definition_relationship FOR (product_definition_relationship); WHERE WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr.name IN [ 'geometrical relationship' , 'definition replacement' ] ) AND ( ( pdr.relating_product_definition.frame_of_reference.name <>'part definition' ) OR ( pdr.related_product_definition.frame_of_reference.name <>'part definition' ) ) ) ) =0; END_RULE; RULE restrict_representation_for_surface_condition FOR (property_definition_representation); WHERE WR1 : SIZEOF(QUERY(pdr <* property_definition_representation | NOT surface_condition_correlation(pdr.definition, pdr.used_representation) ))=0; END_RULE; RULE restrict_treatment_result FOR (representation); LOCAL treatment_results: SET OF representation := []; END_LOCAL; treatment_results:= QUERY( r <* representation | (r.name = 'treatment result') ); WHERE WR1 : (SIZEOF( QUERY( r <* treatment_results | (SIZEOF(r.items) > 2) )) = 0) AND (SIZEOF( QUERY( r <* treatment_results | (SIZEOF( QUERY( i <* r.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) > 0) )) = 0); WR2 : SIZEOF( QUERY( r <* treatment_results | (SIZEOF( QUERY( i <* r.items | i.name = 'result' )) = 0) )) = 0; WR3 : SIZEOF( QUERY( r <* treatment_results | (SIZEOF( QUERY( i <* r.items | i.name = 'purpose' )) > 1) )) = 0; END_RULE; RULE selected_instance_usage_requires_representation FOR (assembly_component_usage); LOCAL selected_instance_usages: SET OF assembly_component_usage := QUERY( acr <* assembly_component_usage| (acr.name = 'selected instance usage')); END_LOCAL; WHERE WR1 : SIZEOF ( QUERY ( acr <* selected_instance_usages | NOT valid_selected_instance_representation(acr) ))=0; END_RULE; RULE solution_definition_requires_solution_category FOR (product_definition); LOCAL solution_definitions: SET OF product_definition := []; END_LOCAL; solution_definitions := QUERY( pd <* product_definition | (pd.frame_of_reference.name = 'alternative definition')); WHERE WR1 : SIZEOF( QUERY( pd <* solution_definitions | (SIZEOF( QUERY( prpc <* USEDIN(pd.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'alternative solution')) = 0 ) )) = 0; END_RULE; RULE stock_material_reference FOR (percentage_ply_definition, make_from_usage_option, product_related_product_category); LOCAL i,j,k : INTEGER; dkuhr : LOGICAL; nmfuo : INTEGER; nprpc : INTEGER; rp : product; END_LOCAL; dkuhr := TRUE; REPEAT i:= LOINDEX (percentage_ply_definition) TO HIINDEX (percentage_ply_definition); nmfuo := 0; REPEAT j:= LOINDEX (make_from_usage_option) TO HIINDEX (make_from_usage_option); IF (percentage_ply_definition[i] = make_from_usage_option[j].relating_product_definition) THEN rp := make_from_usage_option[j].related_product_definition. formation.of_product; nprpc := 0; REPEAT k:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF ((rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN ['anisotropic material', 'isotropic material', 'stock core', 'filament assembly', 'discontinuous fiber assembly'])) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nmfuo := nmfuo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF(nmfuo = 0) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE WR1 : dkuhr; END_RULE; RULE styled_curve FOR (styled_item); WHERE WR1 : SIZEOF( QUERY( si <* styled_item | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (si.item)) AND (SIZEOF (QUERY (psa <* si.styles | (SIZEOF (QUERY (cs <* psa.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (cs)) )) > 0) )) <> 1) )) = 0; END_RULE; RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance); WHERE WR1 : SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COAXIALITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FLATNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARALLELISM_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITION_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROUNDNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 3)))) = 0; END_RULE; RULE subtype_exclusiveness_representation_item FOR (representation_item); WHERE WR1 : SIZEOF(QUERY (cri <* representation_item | NOT (type_check_function(cri,['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOUND_REPRESENTATION_ITEM'] , 3)))) = 0; END_RULE; RULE subtype_mandatory_geometric_tolerance FOR (geometric_tolerance); WHERE WR1 : SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COAXIALITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FLATNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARALLELISM_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITION_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROUNDNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 0)))) = 0; END_RULE; RULE text_font_usage FOR (externally_defined_text_font, pre_defined_text_font); WHERE WR1 : SIZEOF (QUERY (pdtf <* pre_defined_text_font | SIZEOF (USEDIN (pdtf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0; WR2 : SIZEOF (QUERY (edtf <* externally_defined_text_font | SIZEOF (USEDIN (edtf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0; END_RULE; RULE thickness_laminate_table_component_select FOR (thickness_laminate_definition, next_assembly_usage_occurrence, product_related_product_category); LOCAL i,j,k : INTEGER; dkuhr : LOGICAL; nnauo : INTEGER; nprpc : INTEGER; rp : product; END_LOCAL; dkuhr := TRUE; REPEAT i:= LOINDEX (thickness_laminate_definition) TO HIINDEX (thickness_laminate_definition); nnauo := 0; REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO HIINDEX (next_assembly_usage_occurrence); IF (thickness_laminate_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition) THEN rp := next_assembly_usage_occurrence[j].related_product_definition. formation.of_product; nprpc := 0; REPEAT k:= LOINDEX (product_related_product_category) TO HIINDEX (product_related_product_category); IF ((rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN ['ply', 'filament laminate', 'processed core'])) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nnauo := nnauo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF (nnauo <> 1) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE WR1 : dkuhr; END_RULE; RULE validate_dependently_instantiable_entity_data_types FOR (action_method_role, annotation_text, attribute_value_role, auxiliary_geometric_representation_item, binary_numeric_expression, boolean_expression, bounded_curve, bounded_surface, cartesian_transformation_operator, comparison_expression, concept_feature_relationship, concept_feature_relationship_with_condition, connected_edge_set, document_usage_constraint, edge_blended_solid, effectivity_context_role, event_occurrence_role, explicit_procedural_representation_item_relationship, expression, founded_item, generic_expression, generic_variable, indirectly_selected_elements, interval_expression, literal_number, local_time, loop, modified_solid_with_placed_configuration, multiple_arity_boolean_expression, multiple_arity_generic_expression, multiple_arity_numeric_expression, numeric_expression, one_direction_repeat_factor, oriented_open_shell, oriented_path, positioned_sketch, procedural_representation, procedural_representation_sequence, product_definition_context_role, product_definition_effectivity, runout_zone_orientation, simple_boolean_expression, simple_generic_expression, simple_numeric_expression, solid_with_depression, solid_with_hole, solid_with_pocket, solid_with_protrusion, solid_with_shape_element_pattern, solid_with_slot, swept_area_solid, symbol_target, tolerance_zone_form, two_direction_repeat_factor, unary_generic_expression, unary_numeric_expression, user_selected_elements, variational_representation_item, view_volume); LOCAL number_of_input_instances : INTEGER; previous_in_chain : LIST OF GENERIC := []; set_of_input_types : SET OF STRING := []; all_instances : SET OF GENERIC := []; END_LOCAL; all_instances := all_instances + action_method_role + annotation_text + attribute_value_role + auxiliary_geometric_representation_item + binary_numeric_expression + boolean_expression + bounded_curve + bounded_surface + cartesian_transformation_operator + comparison_expression + concept_feature_relationship + concept_feature_relationship_with_condition + connected_edge_set + document_usage_constraint + edge_blended_solid + effectivity_context_role + event_occurrence_role + explicit_procedural_representation_item_relationship + expression + founded_item + generic_expression + generic_variable + indirectly_selected_elements + interval_expression + literal_number + local_time + loop + modified_solid_with_placed_configuration + multiple_arity_boolean_expression + multiple_arity_generic_expression + multiple_arity_numeric_expression + numeric_expression + one_direction_repeat_factor + oriented_open_shell + oriented_path + positioned_sketch + procedural_representation + procedural_representation_sequence + product_definition_context_role + product_definition_effectivity + runout_zone_orientation + simple_boolean_expression + simple_generic_expression + simple_numeric_expression + solid_with_depression + solid_with_hole + solid_with_pocket + solid_with_protrusion + solid_with_shape_element_pattern + solid_with_slot + swept_area_solid + symbol_target + tolerance_zone_form + two_direction_repeat_factor + unary_generic_expression + unary_numeric_expression + user_selected_elements + variational_representation_item + view_volume;-- number_of_input_instances := SIZEOF(all_instances); (* Collect all type strings of all FOR instances into one set. *) REPEAT i:=1 TO number_of_input_instances; set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]); END_REPEAT; WHERE WR1 : dependently_instantiated(all_instances, set_of_input_types, previous_in_chain); END_RULE; FUNCTION acyclic (arg1: generic_expression; arg2: SET [0:?] OF generic_expression) : BOOLEAN; LOCAL result: BOOLEAN := TRUE; END_LOCAL; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF (arg1)) THEN RETURN (TRUE); END_IF; IF arg1 IN arg2 THEN RETURN (FALSE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF (arg1) THEN RETURN (acyclic(arg1\unary_generic_expression.operand,arg2+[arg1])); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF (arg1) THEN RETURN (acyclic(arg1\binary_generic_expression.operands[1],arg2+[arg1]) AND acyclic(arg1\binary_generic_expression.operands[2],arg2+[arg1])); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF (arg1) THEN result := TRUE; REPEAT i := 1 TO SIZEOF (arg1\multiple_arity_generic_expression.operands); result := result AND acyclic(arg1\multiple_arity_generic_expression.operands[i], arg2+[arg1]); END_REPEAT; RETURN (result); END_IF; RETURN (result); END_FUNCTION; FUNCTION acyclic_composite_text (start_composite: composite_text; child_text: SET [1:?] OF text_or_character) : LOGICAL; LOCAL i : INTEGER; local_composite_text : SET [0:?] OF composite_text; local_annotation_text : SET [0:?] OF annotation_text; local_children : SET [0:?] OF text_or_character; END_LOCAL; local_composite_text := QUERY (child <* child_text | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT' IN TYPEOF (child))); IF (SIZEOF (local_composite_text) > 0) THEN REPEAT i := 1 TO HIINDEX (local_composite_text); IF (start_composite :=: local_composite_text[i]) THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; local_children := child_text; IF (SIZEOF (local_composite_text)) > 0 THEN REPEAT i := 1 TO HIINDEX (local_composite_text); local_children := local_children + local_composite_text[i].collected_text; END_REPEAT; END_IF; local_annotation_text := QUERY (child <* child_text | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT' IN TYPEOF (child))); IF (SIZEOF (local_annotation_text) > 0) THEN REPEAT i := 1 TO HIINDEX (local_annotation_text); local_children := local_children + QUERY (item <* local_annotation_text[i]\mapped_item. mapping_source.mapped_representation.items | SIZEOF(['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.COMPOSITE_TEXT'] * TYPEOF(item)) > 0); END_REPEAT; END_IF; IF (local_children :<>: child_text) THEN RETURN (acyclic_composite_text (start_composite, local_children)); ELSE RETURN (TRUE); END_IF; END_FUNCTION; FUNCTION acyclic_curve_replica (rep: curve_replica; parent: curve) : BOOLEAN; IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA') IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; (* Return TRUE if the parent is not of type curve_replica *) IF (parent :=: rep) THEN RETURN (FALSE); (* Return FALSE if the parent is the same curve_replica, otherwise, call function again with the parents own parent_curve. *) ELSE RETURN(acyclic_curve_replica(rep, parent\curve_replica.parent_curve)); END_IF; END_FUNCTION; FUNCTION acyclic_mapped_item_usage (rep: representation) : BOOLEAN; LOCAL items : SET OF representation_item; END_LOCAL; items := QUERY (item <* rep.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)); IF SIZEOF (items) = 0 THEN RETURN (FALSE); ELSE REPEAT i := 1 TO HIINDEX (items); IF items[i]\mapped_item.mapping_source.mapped_representation :=: rep THEN RETURN (TRUE); ELSE RETURN (acyclic_mapped_item_usage(items[i]\ mapped_item.mapping_source.mapped_representation)); END_IF; END_REPEAT; RETURN (FALSE); END_IF; END_FUNCTION; FUNCTION acyclic_mapped_representation (mi: mapped_item) : BOOLEAN; LOCAL rms : SET OF representation_map; mis : SET OF mapped_item; rs1, rs2 : SET OF representation; END_LOCAL; rs1 := using_representations(mi); rs2 := []; -- loop as long as there are elements in rs1 REPEAT WHILE SIZEOF(rs1) > 0; REPEAT i := 1 TO HIINDEX(rs1); -- Determine the set of representation_map that reference the parent_set rms := bag_to_set(USEDIN(rs1[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); IF SIZEOF(rms) > 0 THEN REPEAT j := 1 TO HIINDEX(rms); mis := bag_to_set(USEDIN(rms[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE')); IF SIZEOF(mis) > 0 THEN REPEAT j := 1 TO HIINDEX(mis); -- check mis members for instance equal with mi. If so then there is a cycle IF mis[i] :=: mi THEN RETURN (FALSE); END_IF; rs2 := rs2 + using_representations(mis[i]); END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT; rs1 := rs2; rs2 := []; END_REPEAT; RETURN (TRUE); END_FUNCTION; FUNCTION acyclic_point_replica (rep: point_replica; parent: point) : BOOLEAN; IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA') IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; (* Return TRUE if the parent is not of type point_replica *) IF (parent :=: rep) THEN RETURN (FALSE); (* Return FALSE if the parent is the same point_replica, otherwise, call function again with the parents own parent_pt. *) ELSE RETURN(acyclic_point_replica(rep, parent\point_replica.parent_pt)); END_IF; END_FUNCTION; FUNCTION acyclic_product_definition_relationship (relation: product_definition_relationship; relatives: SET [1:?] OF product_definition; specific_relation: STRING) : BOOLEAN; LOCAL x : SET OF product_definition_relationship; END_LOCAL; IF relation.relating_product_definition IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_product_definition, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_product_definition_relationship(x[i], relatives + relation.relating_product_definition, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; FUNCTION acyclic_representation_relationship (relation: representation_relationship; relatives: SET [1:?] OF representation; specific_relation: STRING) : BOOLEAN; LOCAL x : SET OF representation_relationship; END_LOCAL; IF relation.rep_1 IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(r <* bag_to_set(USEDIN(relation.rep_1, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2')) | specific_relation IN TYPEOF(r)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_representation_relationship(x[i], relatives + relation.rep_1, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; FUNCTION acyclic_solid_replica (rep: solid_replica; parent: solid_model) : BOOLEAN; IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA') IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; (* Return TRUE if the parent is not of type solid_replica. *) IF (parent :=: rep) THEN RETURN (FALSE); (* Return FALSE if the parent is the same solid_replica, otherwise, call function again with the parents own parent_solid. *) ELSE RETURN(acyclic_solid_replica(rep, parent\solid_replica.parent_solid)); END_IF; END_FUNCTION; FUNCTION acyclic_surface_replica (rep: surface_replica; parent: surface) : BOOLEAN; IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA') IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; (* Return TRUE if the parent is not of type surface_replica *) IF (parent :=: rep) THEN RETURN (FALSE); (* Return FALSE if the parent is the same surface_replica, otherwise, call function again with the parents own parent_surface. *) ELSE RETURN(acyclic_surface_replica(rep, parent\surface_replica.parent_surface)); END_IF; END_FUNCTION; FUNCTION advanced_face_properties (testface: face) : BOOLEAN; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF(testface) THEN RETURN (TRUE); END_IF; (* if testface is a subface recursively test the parent_face, return FALSE for all other types of face *) IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(testface)) THEN RETURN(advanced_face_properties(testface\subface.parent_face)); ELSE RETURN (FALSE); END_IF; END_FUNCTION; FUNCTION aspect_ratio (p: planar_box) : positive_ratio_measure; IF (p.size_in_x > 0.) AND (p.size_in_y > 0.) THEN RETURN (p.size_in_x / p.size_in_y); ELSE RETURN (?); END_IF; END_FUNCTION; FUNCTION associated_surface (arg: pcurve_or_surface) : surface; LOCAL surf : surface; END_LOCAL; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(arg) THEN surf := arg\pcurve.basis_surface; ELSE surf := arg; END_IF; RETURN(surf); END_FUNCTION; FUNCTION bag_to_set (the_bag: BAG [0:?] OF GENERIC: intype) : SET [0:?] OF GENERIC: intype; LOCAL the_set : SET OF GENERIC:intype := []; END_LOCAL; IF SIZEOF(the_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(the_bag); the_set := the_set + the_bag[i]; END_REPEAT; END_IF; RETURN (the_set); END_FUNCTION; FUNCTION base_axis (dim: INTEGER; axis1: direction; axis2: direction; axis3: direction) : LIST [2:3] OF direction; LOCAL u : LIST [2:3] OF direction; factor : REAL; d1, d2 : direction; END_LOCAL; IF (dim = 3) THEN d1 := NVL(normalise(axis3), dummy_gri || direction([0.0,0.0,1.0])); d2 := first_proj_axis(d1,axis1); u := [d2, second_proj_axis(d1,d2,axis2), d1]; ELSE IF EXISTS(axis1) THEN d1 := normalise(axis1); u := [d1, orthogonal_complement(d1)]; IF EXISTS(axis2) THEN factor := dot_product(axis2,u[2]); IF (factor < 0.0) THEN u[2].direction_ratios[1] := -u[2].direction_ratios[1]; u[2].direction_ratios[2] := -u[2].direction_ratios[2]; END_IF; END_IF; ELSE IF EXISTS(axis2) THEN d1 := normalise(axis2); u := [orthogonal_complement(d1), d1]; u[1].direction_ratios[1] := -u[1].direction_ratios[1]; u[1].direction_ratios[2] := -u[1].direction_ratios[2]; ELSE u := [dummy_gri || direction([1.0, 0.0]), dummy_gri || direction([0.0, 1.0])]; END_IF; END_IF; END_IF; RETURN(u); END_FUNCTION; FUNCTION boolean_choose (b: BOOLEAN; choice1: GENERIC: item; choice2: GENERIC: item) : GENERIC: item; IF b THEN RETURN (choice1); ELSE RETURN (choice2); END_IF; END_FUNCTION; FUNCTION build_2axes (ref_direction: direction) : LIST [2:2] OF direction; LOCAL d : direction := NVL(normalise(ref_direction), dummy_gri || direction([1.0,0.0])); END_LOCAL; RETURN([d, orthogonal_complement(d)]); END_FUNCTION; FUNCTION build_axes (axis: direction; ref_direction: direction) : LIST [3:3] OF direction; LOCAL d1, d2 : direction; END_LOCAL; d1 := NVL(normalise(axis), dummy_gri || direction([0.0,0.0,1.0])); d2 := first_proj_axis(d1, ref_direction); RETURN([d2, normalise(cross_product(d1,d2))\vector.orientation, d1]); END_FUNCTION; FUNCTION categories_of_product (obj: product) : SET [0:?] OF STRING; LOCAL category_assignments: BAG OF product_category; categories: SET OF STRING:=[]; END_LOCAL; category_assignments := USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS'); REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments) BY 1; categories := categories + category_assignments[i].name; END_REPEAT; RETURN(categories); END_FUNCTION; FUNCTION cc_design_person_and_organization_correlation (e: cc_design_person_and_organization_assignment) : BOOLEAN; LOCAL po_role : STRING; END_LOCAL; po_role := e\person_and_organization_assignment.role.name; CASE po_role OF 'request_recipient' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CHANGE_REQUEST', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'START_REQUEST'] * TYPEOF (x)) = 1)) THEN RETURN(FALSE); END_IF; 'initiator' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CHANGE_REQUEST', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'START_REQUEST', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'START_WORK', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CHANGE'] * TYPEOF (x)) = 1)) THEN RETURN(FALSE); END_IF; 'creator' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION'] * TYPEOF (x)) = 1)) THEN RETURN (FALSE); END_IF; 'part_supplier' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF (x))) THEN RETURN(FALSE); END_IF; 'design_supplier' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF (x))) THEN RETURN(FALSE); END_IF; 'design_owner' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT' IN TYPEOF (x))) THEN RETURN(FALSE); END_IF; 'configuration_manager' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONFIGURATION_ITEM' IN TYPEOF (x))) THEN RETURN(FALSE); END_IF; 'contractor' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONTRACT' IN TYPEOF (x))) THEN RETURN(FALSE); END_IF; 'classification_officer' : IF SIZEOF (e.items) <> SIZEOF (QUERY (x <* e.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SECURITY_CLASSIFICATION' IN TYPEOF (x))) THEN RETURN(FALSE); END_IF; OTHERWISE : RETURN(TRUE); END_CASE; RETURN (TRUE); END_FUNCTION; FUNCTION check_continuous_edges (edges: LIST [0:?] OF UNIQUE edge_curve) : BOOLEAN; LOCAL i : INTEGER; next_vertex : vertex; END_LOCAL; -- first check whether there is only one edge in the list: in this -- case there is no connectivity to be checked. IF (SIZEOF(edges) = 1) THEN RETURN(TRUE); END_IF; -- otherwise, establish the matching vertices of edges 1 and 2 in -- the list, and determine the vertex of edge 2 to which edge 3, -- must be connected, if there are more than two edges in the list. IF ((edges[2].edge_start :=: edges[1].edge_end) XOR (edges[2].edge_start :=: edges[1].edge_start)) THEN next_vertex := edges[2].edge_end; ELSE IF ((edges[2].edge_end :=: edges[1].edge_end) XOR (edges[2].edge_end :=: edges[1].edge_start)) THEN next_vertex := edges[2].edge_start; ELSE RETURN(FALSE); -- no match between any vertices of edges 1 and 2 END_IF; END_IF; -- exit if there are only two edges and they are connected IF (SIZEOF(edges) = 2) THEN RETURN(TRUE); END_IF; -- otherwise, check that any remaining edges are connected in list order. REPEAT i := 3 TO HIINDEX(edges); IF (edges[i].edge_start :=: next_vertex) THEN next_vertex := edges[i].edge_end; ELSE IF (edges[i].edge_end :=: next_vertex) THEN next_vertex := edges[i].edge_start; ELSE RETURN(FALSE); -- no match is found. END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION; FUNCTION check_text_alignment (ct: composite_text) : BOOLEAN; LOCAL a : SET OF text_alignment := []; END_LOCAL; -- create a set of all the alignments REPEAT i := 1 TO HIINDEX (ct.collected_text); a := a + [ct.collected_text[i]\text_literal.alignment]; END_REPEAT; -- if there is more than one element in the set -- then not all alignments were the same RETURN (SIZEOF(a) = 1); END_FUNCTION; FUNCTION check_text_font (ct: composite_text) : BOOLEAN; LOCAL f : SET OF font_select := []; END_LOCAL; -- build a set of all the fonts REPEAT i := 1 TO HIINDEX (ct.collected_text); f := f + [ct.collected_text[i]\text_literal.font]; END_REPEAT; -- if there is more than one element in the set -- then not all fonts were the same RETURN (SIZEOF(f) <= 1); END_FUNCTION; FUNCTION class_assignment_is_valid (aia: applied_classification_assignment) : BOOLEAN; LOCAL item: classification_item; role: classification_role; END_LOCAL; role:= aia\classification_assignment.role; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'CLASS_SYSTEM' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN IF(role\classification_role.name <> 'class system membership') THEN RETURN(FALSE); END_IF; REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); item:= aia\applied_classification_assignment.items[i]; IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CLASS_SYSTEM_ITEM'] * TYPEOF(item))=0) THEN -- item invalid if item does not belong to the types that may have a class_system RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'CHARACTERIZED_CLASS' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN IF NOT(role\classification_role.name IN ['definitional','non-definitional','']) THEN RETURN(FALSE); END_IF; REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); item:= aia\applied_classification_assignment.items[i]; IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CLASSIFIED_ITEM'] * TYPEOF(item))=0) THEN -- item invalid if item does not belong to the types that may have a characterized_class RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF (role\classification_role.name = 'definitional') THEN IF NOT (SIZEOF(QUERY(it <* aia\applied_classification_assignment.items | NOT (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_FORMATION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1) )) = 0 ) THEN RETURN(FALSE); END_IF; END_IF; RETURN(TRUE); END_FUNCTION; FUNCTION closed_shell_reversed (a_shell: closed_shell) : oriented_closed_shell; LOCAL the_reverse : oriented_closed_shell; END_LOCAL; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN the_reverse := dummy_tri || connected_face_set ( a_shell\connected_face_set.cfs_faces) || closed_shell () || oriented_closed_shell( a_shell\oriented_closed_shell.closed_shell_element, NOT(a_shell\oriented_closed_shell.orientation)); ELSE the_reverse := dummy_tri || connected_face_set ( a_shell\connected_face_set.cfs_faces) || closed_shell () || oriented_closed_shell (a_shell, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; FUNCTION compute_total_depth (swsrh: solid_with_stepped_round_hole) : positive_length_measure; LOCAL i : positive_integer; n : positive_integer := swsrh.segments; td : positive_length_measure := swsrh.segment_depths[1]; END_LOCAL; IF n = 1 THEN RETURN(td); ELSE REPEAT i := 2 TO n; td := td + swsrh.segment_depths[i]; END_REPEAT; END_IF; RETURN(td); END_FUNCTION; FUNCTION conditional_reverse (p: BOOLEAN; an_item: reversible_topology) : reversible_topology; IF p THEN RETURN (an_item); ELSE RETURN (topology_reversed (an_item)); END_IF; END_FUNCTION; FUNCTION constraints_composite_curve_on_surface (c: composite_curve_on_surface) : BOOLEAN; LOCAL n_segments : INTEGER := SIZEOF(c.segments); END_LOCAL; REPEAT k := 1 TO n_segments; IF (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(c\composite_curve.segments[k].parent_curve))) AND (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(c\composite_curve.segments[k].parent_curve))) AND (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c\composite_curve.segments[k].parent_curve))) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION; FUNCTION constraints_geometry_shell_based_surface_model (m: shell_based_surface_model) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF(m.sbsm_boundary); IF (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[j])) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL' IN TYPEOF(m.sbsm_boundary[j])))) THEN result := FALSE; RETURN(result); (* A surface model is composed of OPEN_ and CLOSED_SHELLs. *) END_IF; END_REPEAT; RETURN(result); END_FUNCTION; FUNCTION constraints_geometry_shell_based_wireframe_model (m: shell_based_wireframe_model) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF(m.sbwm_boundary); IF (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF(m.sbwm_boundary[j])) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN TYPEOF(m.sbwm_boundary[j])))) THEN result := FALSE; RETURN(result); (* A wireframe model is composed of WIRE_ and VERTEX_SHELLs *) END_IF; END_REPEAT; RETURN(result); END_FUNCTION; FUNCTION constraints_param_b_spline (degree: INTEGER; up_knots: INTEGER; up_cp: INTEGER; knot_mult: LIST [0:?] OF INTEGER; knots: LIST [0:?] OF parameter_value) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; k, sum : INTEGER; END_LOCAL; (* Find sum of knot multiplicities. *) sum := knot_mult[1]; REPEAT i := 2 TO up_knots; sum := sum + knot_mult[i]; END_REPEAT; (* Check limits holding for all B-spline parametrisations *) IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> (degree + up_cp + 2)) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[1]; IF (k < 1) OR (k > degree + 1) THEN result := FALSE; RETURN(result); END_IF; REPEAT i := 2 TO up_knots; IF (knot_mult[i] < 1) OR (knots[i] <= knots[i-1]) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[i]; IF (i < up_knots) AND (k > degree) THEN result := FALSE; RETURN(result); END_IF; IF (i = up_knots) AND (k > degree + 1) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION; FUNCTION constraints_rectangular_composite_surface (s: rectangular_composite_surface) : BOOLEAN; REPEAT i := 1 TO s.n_u; REPEAT j := 1 TO s.n_v; IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF (s.segments[i][j].parent_surface)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF (s.segments[i][j].parent_surface))) THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; (* Check the transition codes, omitting the last row or column *) REPEAT i := 1 TO s.n_u-1; REPEAT j := 1 TO s.n_v; IF s.segments[i][j].u_transition = discontinuous THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO s.n_u; REPEAT j := 1 TO s.n_v-1; IF s.segments[i][j].v_transition = discontinuous THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN(TRUE); END_FUNCTION; FUNCTION control_characters_free (s: STRING) : BOOLEAN; LOCAL ch : STRING; END_LOCAL; REPEAT i:=1 TO LENGTH(s); ch := s[i]; IF (ch = '\x9') OR (ch = '\xA') OR (ch = '\xD') THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; FUNCTION cross_product (arg1: direction; arg2: direction) : vector; LOCAL mag : REAL; res : direction; v1,v2 : LIST[3:3] OF REAL; result : vector; END_LOCAL; IF ( NOT EXISTS (arg1) OR (arg1.dim = 2)) OR ( NOT EXISTS (arg2) OR (arg2.dim = 2)) THEN RETURN(?); ELSE BEGIN v1 := normalise(arg1).direction_ratios; v2 := normalise(arg2).direction_ratios; res := dummy_gri || direction([(v1[2]*v2[3] - v1[3]*v2[2]), (v1[3]*v2[1] - v1[1]*v2[3]), (v1[1]*v2[2] - v1[2]*v2[1])]); mag := 0.0; REPEAT i := 1 TO 3; mag := mag + res.direction_ratios[i]*res.direction_ratios[i]; END_REPEAT; IF (mag > 0.0) THEN result := dummy_gri || vector(res, SQRT(mag)); ELSE result := dummy_gri || vector(arg1, 0.0); END_IF; RETURN(result); END; END_IF; END_FUNCTION; FUNCTION curve_weights_positive (b: rational_b_spline_curve) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.upper_index_on_control_points; IF b.weights[i] <= 0.0 THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION; FUNCTION default_tolerance_table_cell_wr2 (agg: compound_item_definition) : BOOLEAN; BEGIN IF SIZEOF(agg) <= 5 THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION; FUNCTION default_tolerance_table_cell_wr3 (agg: compound_item_definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'significant number of digits')) )) = 1) OR ((SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'lower limit')) )) = 1) AND (SIZEOF( QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'upper limit')) )) = 1)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION; FUNCTION default_tolerance_table_cell_wr4 (agg: compound_item_definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'plus minus tolerance value')) )) = 1) OR ((SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ( i\representation_item.name = 'lower tolerance value')) )) = 1) AND (SIZEOF( QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ( i\representation_item.name = 'upper tolerance value')) )) = 1)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION; FUNCTION default_tolerance_table_cell_wr5 (agg: compound_item_definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY ( i <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) <= 1) AND (SIZEOF(QUERY ( i <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) = SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'cell description'))) )) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION; FUNCTION dependently_instantiated (set_of_input_instances: SET [0:?] OF GENERIC: igen; set_of_input_types: SET [0:?] OF STRING; previous_in_chain: LIST [0:?] OF GENERIC: cgen) : BOOLEAN; LOCAL number_of_input_instances : INTEGER; number_of_referring_instances : INTEGER; bag_of_referring_instances : BAG OF GENERIC:igen := []; dependently_instantiated_flag : BOOLEAN; previous_in_chain_plus : LIST OF GENERIC:cgen := []; result : BOOLEAN := true; set_of_types : SET OF STRING := []; END_LOCAL; IF EXISTS(set_of_input_instances) THEN number_of_input_instances := SIZEOF(set_of_input_instances); (* Add the declared type of bag_of_referring_instances to the set of types of the REFERENCEd instances for the subset comparison later. *) set_of_input_types := set_of_input_types + 'GENERIC'; REPEAT i:=1 TO number_of_input_instances; (* Determine all references to the current input instance. *) bag_of_referring_instances := USEDIN (set_of_input_instances[i] , ''); IF EXISTS(bag_of_referring_instances) THEN number_of_referring_instances := SIZEOF(bag_of_referring_instances); dependently_instantiated_flag := false; REPEAT j:=1 TO number_of_referring_instances; (* Determine the type strings of the current referencing instance. *) set_of_types := TYPEOF(bag_of_referring_instances[j]); (* If the referencing instance is of one of the types of the only dependently instantiable select items, the current input instance may still be invalidly instantiated. Otherwise it is OK, and the next input instance is tested. *) IF set_of_types <= set_of_input_types THEN -- subset operator (* The referring instance is of one of the restricted types. However, it may itself be referred to by a valid instance; then also the current instance would be valid. Thus, call this function recursively with the referring instance as input. To avoid an infinite loop in case a set of instances reference each other in a closed loop, test first whether the current referencing instance is in the list of previously processed chain members. *) IF NOT (bag_of_referring_instances[j] IN previous_in_chain) THEN previous_in_chain_plus := previous_in_chain + set_of_input_instances[i]; IF dependently_instantiated([bag_of_referring_instances[j]], set_of_input_types, previous_in_chain_plus) THEN dependently_instantiated_flag := true; ESCAPE; -- dependently instantiated; next input instance ELSE (* Not dependently instantiated: go to next referring instance. *) SKIP; END_IF; END_IF; ELSE dependently_instantiated_flag := true; ESCAPE; -- dependently instantiated; take next input instance END_IF; END_REPEAT; IF NOT dependently_instantiated_flag THEN RETURN(false); END_IF; ELSE RETURN(false); -- not referenced at all => invalidly instantiated END_IF; END_REPEAT; ELSE RETURN(false); -- no input END_IF; RETURN(true); END_FUNCTION; FUNCTION derive_angle (placement_1: axis2_placement_3d; placement_2: axis2_placement_3d) : plane_angle_measure; LOCAL v1 : direction; v2 : direction; mag_v1 : REAL; mag_v2 : REAL; theta : plane_angle_measure; END_LOCAL; v1 := placement_1.p[1]; v2 := placement_2.p[1]; mag_v1 := SQRT (v1.direction_ratios[1]*v1.direction_ratios[1] + v1.direction_ratios[2]*v1.direction_ratios[2]); mag_v2 := SQRT (v2.direction_ratios[1]*v2.direction_ratios[1] + v2.direction_ratios[2]*v2.direction_ratios[2]); IF ((mag_v1 = 0.0) OR (mag_v2 = 0.0)) THEN theta := 0.0; RETURN (theta); END_IF; theta := ACOS ((v1.direction_ratios[1]*v2.direction_ratios[1] + v1.direction_ratios[2]*v2.direction_ratios[2]) / (mag_v1*mag_v2)); RETURN (theta); END_FUNCTION; FUNCTION derive_dimensional_exponents (x: unit) : dimensional_exponents; LOCAL result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); END_LOCAL; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_UNIT' IN TYPEOF(x) THEN REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\derived_unit.elements); result.length_exponent := result.length_exponent + (x\derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.length_exponent); result.mass_exponent := result.mass_exponent + (x\derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.mass_exponent); result.time_exponent := result.time_exponent + (x\derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.time_exponent); result.electric_current_exponent := result.electric_current_exponent + (x\derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.electric_current_exponent); result.thermodynamic_temperature_exponent := result.thermodynamic_temperature_exponent + (x\derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.thermodynamic_temperature_exponent); result.amount_of_substance_exponent := result.amount_of_substance_exponent + (x\derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.amount_of_substance_exponent); result.luminous_intensity_exponent := result.luminous_intensity_exponent + (x\derived_unit.elements[i]\derived_unit_element.exponent * x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.luminous_intensity_exponent); END_REPEAT; ELSE result := x\named_unit.dimensions; END_IF; RETURN (result); END_FUNCTION; FUNCTION dimension_of (item: geometric_representation_item) : dimension_count; LOCAL x : SET OF representation; y : representation_context; dim : dimension_count; END_LOCAL; -- For cartesian_point, direction, or vector dimension is determined by -- counting components. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item) THEN dim := SIZEOF(item\cartesian_point.coordinates); RETURN(dim); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIRECTION' IN TYPEOF(item) THEN dim := SIZEOF(item\direction.direction_ratios); RETURN(dim); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(item) THEN dim := SIZEOF(item\vector.orientation\direction.direction_ratios); RETURN(dim); END_IF; -- For all other types of geometric_representation_item dim is obtained -- via context. -- Find the set of representation in which the item is used. x := using_representations(item); -- Determines the dimension_count of the -- geometric_representation_context. Note that the -- RULE compatible_dimension ensures that the context_of_items -- is of type geometric_representation_context and has -- the same dimension_count for all values of x. -- The SET x is non-empty since this is required by WR1 of -- representation_item. y := x[1].context_of_items; dim := y\geometric_representation_context.coordinate_space_dimension; RETURN (dim); END_FUNCTION; FUNCTION dimensions_for_si_unit (n: si_unit_name) : dimensional_exponents; CASE n OF metre: RETURN (dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); gram: RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0)); second: RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0)); ampere: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0)); kelvin: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); mole: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)); candela: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); radian: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); steradian: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); hertz: RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); newton: RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); pascal: RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); joule: RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); watt: RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0)); coulomb: RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0)); volt: RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0)); farad: RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0)); ohm: RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0)); siemens: RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0)); weber: RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); tesla: RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); henry: RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0)); degree_Celsius: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); lumen: RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); lux: RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); becquerel: RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); gray: RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); sievert: RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); OTHERWISE: RETURN (?); END_CASE; END_FUNCTION; FUNCTION dot_product (arg1: direction; arg2: direction) : REAL; LOCAL scalar : REAL; vec1, vec2: direction; ndim : INTEGER; END_LOCAL; IF NOT EXISTS (arg1) OR NOT EXISTS (arg2) THEN scalar := ?; (* When function is called with invalid data an indeterminate result is returned *) ELSE IF (arg1.dim <> arg2.dim) THEN scalar := ?; (* When function is called with invalid data an indeterminate result is returned *) ELSE BEGIN vec1 := normalise(arg1); vec2 := normalise(arg2); ndim := arg1.dim; scalar := 0.0; REPEAT i := 1 TO ndim; scalar := scalar + vec1.direction_ratios[i]*vec2.direction_ratios[i]; END_REPEAT; END; END_IF; END_IF; RETURN (scalar); END_FUNCTION; FUNCTION edge_reversed (an_edge: edge) : oriented_edge; LOCAL the_reverse : oriented_edge; END_LOCAL; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_EDGE' IN TYPEOF (an_edge) ) THEN the_reverse := dummy_tri || edge(an_edge.edge_end, an_edge.edge_start) || oriented_edge(an_edge\oriented_edge.edge_element, NOT (an_edge\oriented_edge.orientation)) ; ELSE the_reverse := dummy_tri || edge(an_edge.edge_end, an_edge.edge_start) || oriented_edge(an_edge, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; FUNCTION external_version_assignment_is_valid (aia: applied_external_identification_assignment) : BOOLEAN; LOCAL item: identification_item; role: identification_role; END_LOCAL; role:= aia.role; IF role.name='version' THEN REPEAT i:=LOINDEX(aia.items) TO HIINDEX(aia.items); item:= aia.items[i]; IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_VERSIONED_ITEM']*TYPEOF(item))=0) THEN -- item invalid if item does not belong to versionable types RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); ELSE -- case where aia does not convey a version id RETURN(TRUE); END_IF; END_FUNCTION; FUNCTION face_bound_reversed (a_face_bound: face_bound) : face_bound; LOCAL the_reverse : face_bound ; END_LOCAL; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (a_face_bound) ) THEN the_reverse := dummy_tri || face_bound(a_face_bound\face_bound.bound, NOT (a_face_bound\face_bound.orientation)) || face_outer_bound() ; ELSE the_reverse := dummy_tri || face_bound(a_face_bound.bound, NOT(a_face_bound.orientation)); END_IF; RETURN (the_reverse); END_FUNCTION; FUNCTION face_reversed (a_face: face) : oriented_face; LOCAL the_reverse : oriented_face ; END_LOCAL; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (a_face) ) THEN the_reverse := dummy_tri || face(set_of_topology_reversed(a_face.bounds)) || oriented_face(a_face\oriented_face.face_element, NOT (a_face\oriented_face.orientation)) ; ELSE the_reverse := dummy_tri || face(set_of_topology_reversed(a_face.bounds)) || oriented_face(a_face, FALSE) ; END_IF; RETURN (the_reverse); END_FUNCTION; FUNCTION first_proj_axis (z_axis: direction; arg: direction) : direction; LOCAL x_axis : direction; v : direction; z : direction; x_vec : vector; END_LOCAL; IF (NOT EXISTS(z_axis)) THEN RETURN (?) ; ELSE z := normalise(z_axis); IF NOT EXISTS(arg) THEN IF ((z.direction_ratios <> [1.0,0.0,0.0]) AND (z.direction_ratios <> [-1.0,0.0,0.0])) THEN v := dummy_gri || direction([1.0,0.0,0.0]); ELSE v := dummy_gri || direction([0.0,1.0,0.0]); END_IF; ELSE IF (arg.dim <> 3) THEN RETURN (?) ; END_IF; IF ((cross_product(arg,z).magnitude) = 0.0) THEN RETURN (?); ELSE v := normalise(arg); END_IF; END_IF; x_vec := scalar_times_vector(dot_product(v, z), z); x_axis := vector_difference(v, x_vec).orientation; x_axis := normalise(x_axis); END_IF; RETURN(x_axis); END_FUNCTION; FUNCTION gbsf_check_curve (cv: representation_item) : BOOLEAN; IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE', '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.CURVE_REPLICA', '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.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN (FALSE); END_IF; IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN RETURN (TRUE); ELSE IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = UNKNOWN)) THEN RETURN (TRUE); ELSE IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(cv)) AND (cv\composite_curve.self_intersect = FALSE) OR (cv\composite_curve.self_intersect = UNKNOWN)) THEN RETURN (SIZEOF(QUERY(seg <* cv\composite_curve.segments | NOT (gbsf_check_curve(seg.parent_curve)))) = 0); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (gbsf_check_curve(cv\curve_replica.parent_curve)); ELSE IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)))) THEN RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN RETURN ((gbsf_check_curve(cv\pcurve.reference_to_curve\representation.items[1])) AND (gbsf_check_surface(cv\pcurve.basis_surface))); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN IF (SIZEOF(cv\polyline.points) >= 3) THEN RETURN (TRUE); END_IF; ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN IF gbsf_check_curve(cv\surface_curve.curve_3d) THEN REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry); IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN IF NOT gbsf_check_surface(cv\surface_curve.associated_geometry[i]) THEN RETURN (FALSE); END_IF; ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN IF NOT gbsf_check_curve(cv\surface_curve.associated_geometry[i]) THEN RETURN (FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; FUNCTION gbsf_check_point (pnt: point) : BOOLEAN; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN (TRUE); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) THEN RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE' IN TYPEOF(pnt) THEN RETURN ((gbsf_check_curve(pnt\degenerate_pcurve.reference_to_curve\representation.items[1])) AND (gbsf_check_surface(pnt\degenerate_pcurve.basis_surface))); END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; FUNCTION gbsf_check_surface (sf: surface) : BOOLEAN; IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\b_spline_surface.self_intersect = FALSE) OR (sf\b_spline_surface.self_intersect = UNKNOWN)) THEN RETURN (TRUE); ELSE IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPHERICAL_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOROIDAL_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF(sf)) = 1 THEN RETURN (TRUE); ELSE IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF(sf)) AND (sf\offset_surface.self_intersect = FALSE) OR (sf\offset_surface.self_intersect = UNKNOWN)) THEN RETURN (gbsf_check_surface(sf\offset_surface.basis_surface)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF(sf) THEN REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface.segments); REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface.segments[i]); IF NOT (gbsf_check_surface(sf\rectangular_composite_surface.segments[i][j].parent_surface)) THEN RETURN (FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN (TRUE); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf) THEN RETURN (gbsf_check_surface(sf\surface_replica.parent_surface)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(sf) THEN RETURN (gbsf_check_curve(sf\swept_surface.swept_curve)); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; FUNCTION get_basis_surface (c: curve_on_surface) : SET [0:2] OF surface; LOCAL surfs : SET[0:2] OF surface; n : INTEGER; END_LOCAL; surfs := []; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (c) THEN surfs := [c\pcurve.basis_surface]; ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF (c) THEN n := SIZEOF(c\surface_curve.associated_geometry); REPEAT i := 1 TO n; surfs := surfs + associated_surface(c\surface_curve.associated_geometry[i]); END_REPEAT; END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF (c) THEN (* For a composite_curve_on_surface the basis_surface is the intersection of the basis_surfaces of all the segments. *) n := SIZEOF(c\composite_curve.segments); surfs := get_basis_surface( c\composite_curve.segments[1].parent_curve); IF n > 1 THEN REPEAT i := 2 TO n; surfs := surfs * get_basis_surface( c\composite_curve.segments[i].parent_curve); END_REPEAT; END_IF; END_IF; RETURN(surfs); END_FUNCTION; FUNCTION get_description_value (obj: description_attribute_select) : text; LOCAL description_bag : BAG OF description_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM')); END_LOCAL; IF SIZEOF(description_bag) = 1 THEN RETURN (description_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; FUNCTION get_id_value (obj: id_attribute_select) : identifier; LOCAL id_bag : BAG OF id_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM')); END_LOCAL; IF SIZEOF(id_bag) = 1 THEN RETURN (id_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; FUNCTION get_name_value (obj: name_attribute_select) : label; LOCAL name_bag : BAG OF name_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM')); END_LOCAL; IF SIZEOF(name_bag) = 1 THEN RETURN (name_bag[1].attribute_value); ELSE RETURN (?); END_IF; END_FUNCTION; FUNCTION get_role (obj: role_select) : object_role; LOCAL role_bag : BAG OF role_association := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE')); END_LOCAL; IF SIZEOF(role_bag) = 1 THEN RETURN (role_bag[1].role); ELSE RETURN (?); END_IF; END_FUNCTION; FUNCTION get_shape_aspect_property_definition_representations (s_a_instance: shape_aspect) : SET [0:?] OF property_definition_representation; LOCAL pd_set : SET OF property_definition := []; pdr_set : SET OF property_definition_representation := [] ; END_LOCAL; pd_set := bag_to_set(USEDIN(s_a_instance, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); IF (SIZEOF(pd_set) < 1) THEN RETURN (pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set); pdr_set := pdr_set + (QUERY(pdr <* USEDIN(pd_set[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr))); END_REPEAT; RETURN (pdr_set); END_FUNCTION; FUNCTION is_acyclic (arg: generic_expression) : BOOLEAN; RETURN (acyclic (arg, [])); END_FUNCTION; FUNCTION is_int_expr (arg: numeric_expression) : LOGICAL; LOCAL i: INTEGER := 0; END_LOCAL; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_LITERAL' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_LITERAL' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg) THEN RETURN (is_int_expr(arg\unary_numeric_expression.operand)); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) THEN RETURN (is_int_expr(arg\unary_numeric_expression.operand)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF(arg)) THEN REPEAT i :=1 TO SIZEOF ( arg\multiple_arity_numeric_expression.operands); IF NOT is_int_expr(arg\multiple_arity_numeric_expression.operands[i]) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) THEN RETURN (is_int_expr(arg\binary_numeric_expression.operands[1]) AND is_int_expr(arg\binary_numeric_expression.operands[2])); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) THEN RETURN(TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg) THEN RETURN (FALSE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg) THEN RETURN (TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg) THEN IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_VALUE_FUNCTION' IN TYPEOF(arg) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(TRUE) ; END_IF; IF'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(FALSE) ; END_IF ; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(FALSE) ; END_IF ; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN (FALSE) ; END_IF ; RETURN (FALSE); END_FUNCTION; FUNCTION is_SQL_mappable (arg: expression) : LOGICAL; LOCAL i: INTEGER; END_LOCAL; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF (arg) THEN RETURN (TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF (arg) THEN RETURN (TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) THEN RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF(arg)) THEN REPEAT i :=1 TO SIZEOF ( arg\multiple_arity_numeric_expression.operands); IF NOT is_SQL_mappable( arg\multiple_arity_numeric_expression.operands[i]) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg)) THEN RETURN (is_SQL_mappable( arg\binary_numeric_expression.operands[1]) AND is_SQL_mappable(arg\binary_numeric_expression.operands[2])); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF (arg) THEN RETURN (TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NOT_EXPRESSION' IN TYPEOF (arg) THEN RETURN (is_SQL_mappable (arg\UNARY_GENERIC_EXPRESSION.OPERAND)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ODD_FUNCTION'IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.XOR_EXPRESSION' IN TYPEOF (arg)) THEN RETURN (FALSE); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AND_EXPRESSION' IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OR_EXPRESSION' IN TYPEOF (arg)) THEN REPEAT i:=1 TO SIZEOF ( arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS); IF NOT is_SQL_mappable ( arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS[i]) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EQUALS_EXPRESSION' IN TYPEOF (arg) THEN RETURN(is_SQL_mappable ( arg\BINARY_GENERIC_EXPRESSION.OPERANDS [1]) AND is_SQL_mappable( arg\BINARY_GENERIC_EXPRESSION.OPERANDS [2])); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_EQUAL' IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_GREATER' IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_LESS' IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF (arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LIKE_EXPRESSION' IN TYPEOF (arg)) THEN RETURN (is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[1]) AND is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[2])); END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INTERVAL_EXPRESSION' IN TYPEOF(arg) THEN RETURN (is_SQL_mappable(arg\interval_expression.interval_low) AND is_SQL_mappable(arg\interval_expression.interval_high) AND is_SQL_mappable(arg\interval_expression.interval_item)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE) ; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF(ARG) THEN RETURN (TRUE); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDEX_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF(arg)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORMAT_FUNCTION' IN TYPEOF(arg)) THEN RETURN (FALSE); END_IF; RETURN (FALSE); END_FUNCTION; FUNCTION item_in_context (item: representation_item; cntxt: representation_context) : BOOLEAN; LOCAL y : BAG OF representation_item; END_LOCAL; -- If there is one or more representation using both the item -- and cntxt return true. IF SIZEOF(USEDIN(item,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS') * cntxt.representations_in_context) > 0 THEN RETURN (TRUE); -- Determine the bag of representation_items that reference -- item ELSE y := QUERY(z <* USEDIN (item , '') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)); -- Ensure that the bag is not empty IF SIZEOF(y) > 0 THEN -- For each element in the bag REPEAT i := 1 TO HIINDEX(y); -- Check to see it is an item in the input cntxt. IF item_in_context(y[i], cntxt) THEN RETURN (TRUE); END_IF; END_REPEAT; END_IF; END_IF; -- Return false when all possible branches have been checked -- with no success. RETURN (FALSE); END_FUNCTION; FUNCTION leap_year (year: year_number) : BOOLEAN; IF ((((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0)) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END_FUNCTION; FUNCTION list_face_loops (f: face) : LIST [0:?] OF loop; LOCAL loops : LIST[0:?] OF loop := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(f.bounds); loops := loops +(f.bounds[i].bound); END_REPEAT; RETURN(loops); END_FUNCTION; FUNCTION list_of_topology_reversed (a_list: list_of_reversible_topology_item) : list_of_reversible_topology_item; LOCAL the_reverse : list_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF (a_list); the_reverse := topology_reversed (a_list [i]) + the_reverse; END_REPEAT; RETURN (the_reverse); END_FUNCTION; FUNCTION list_to_array (lis: LIST [0:?] OF GENERIC: T; low: INTEGER; u: INTEGER) : ARRAY [low:u] OF GENERIC: T; LOCAL n : INTEGER; res : ARRAY [low:u] OF GENERIC : T; END_LOCAL; n := SIZEOF(lis); IF (n <> (u-low +1)) THEN RETURN(?); ELSE res := [lis[1] : n]; REPEAT i := 2 TO n; res[low+i-1] := lis[i]; END_REPEAT; RETURN(res); END_IF; END_FUNCTION; FUNCTION list_to_set (l: LIST [0:?] OF GENERIC: T) : SET [0:?] OF GENERIC: T; LOCAL s : SET OF GENERIC:T := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(l); s := s + l[i]; END_REPEAT; RETURN(s); END_FUNCTION; FUNCTION make_array_of_array (lis: LIST [1:?] OF LIST [1:?] OF GENERIC: T; low1: INTEGER; u1: INTEGER; low2: INTEGER; u2: INTEGER) : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC: T; LOCAL res : ARRAY[low1:u1] OF ARRAY [low2:u2] OF GENERIC : T; END_LOCAL; (* Check input dimensions for consistency *) IF (u1-low1+1) <> SIZEOF(lis) THEN RETURN (?); END_IF; IF (u2 - low2 + 1 ) <> SIZEOF(lis[1]) THEN RETURN (?) ; END_IF; (* Initialise res with values from lis[1] *) res := [list_to_array(lis[1], low2, u2) : (u1-low1 + 1)]; REPEAT i := 2 TO HIINDEX(lis); IF (u2-low2+1) <> SIZEOF(lis[i]) THEN RETURN (?); END_IF; res[low1+i-1] := list_to_array(lis[i], low2, u2); END_REPEAT; RETURN (res); END_FUNCTION; FUNCTION mixed_loop_type_set (l: SET [0:?] OF loop) : LOGICAL; LOCAL poly_loop_type: LOGICAL; END_LOCAL; IF(SIZEOF(l) <= 1) THEN RETURN(FALSE); END_IF; poly_loop_type := ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLY_LOOP' IN TYPEOF(l[1])); REPEAT i := 2 TO SIZEOF(l); IF(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type) THEN RETURN(TRUE); END_IF; END_REPEAT; RETURN(FALSE); END_FUNCTION; FUNCTION msb_shells (brep: manifold_solid_brep) : SET [1:?] OF closed_shell; LOCAL return_set: SET[1:?] OF closed_shell := [brep.outer]; END_LOCAL; IF SIZEOF(QUERY(msbtype <* TYPEOF(brep) | msbtype LIKE '*BREP_WITH_VOIDS')) >= 1 THEN return_set := return_set + brep\brep_with_voids.voids; END_IF; RETURN(return_set); END_FUNCTION; FUNCTION msf_curve_check (cv: representation_item) : BOOLEAN; IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE', '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.CURVE_REPLICA', '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.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN(FALSE); END_IF; (* b_spline_curves shall not self-intersect *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (cv)) AND (cv\b_spline_curve.self_intersect = FALSE)OR (cv\b_spline_curve.self_intersect = UNKNOWN)) THEN RETURN(TRUE); ELSE (* conics and lines are valid curve types *) IF SIZEOF (['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.LINE'] * TYPEOF (cv)) = 1 THEN RETURN(TRUE); ELSE (* a curve_replica shall reference a valid curve *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (msf_curve_check(cv\curve_replica.parent_curve)); ELSE (* an offset_curve_3d shall not self-intersect and shall reference a valid curve; a polyline is not a valid basis_curve *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (cv\offset_curve_3d.basis_curve)))) THEN RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve)); ELSE (* a pcurve shall reference a valid curve and a valid basis_surface *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN RETURN ((msf_curve_check (cv\pcurve.reference_to_curve\representation.items[1])) AND (msf_surface_check(cv\pcurve.basis_surface))); ELSE (* a surface_curve references a curve_3d and one or two pcurves or one or two surfaces or one of each; all of these references shall be valid *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN (* if the curve reference is correct, check also the rest *) IF msf_curve_check(cv\surface_curve.curve_3d) THEN REPEAT i := 1 TO SIZEOF (cv\surface_curve.associated_geometry); (* do for one or two associated_geometrys: *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF (cv\surface_curve.associated_geometry[i]) THEN IF NOT msf_surface_check (cv\surface_curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (cv\surface_curve.associated_geometry[i]) THEN IF NOT msf_curve_check (cv\surface_curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_IF; ELSE (* a polyline shall have at least 3 points *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN IF (SIZEOF (cv\polyline.points) >= 3) THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; (* FALSE is returned if the input parameter cv is not a valid curve. *) RETURN (FALSE); END_FUNCTION; FUNCTION msf_surface_check (surf: surface) : BOOLEAN; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN(TRUE); ELSE (* a swept_surface shall have a valid sweeping curve *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (surf) THEN RETURN (msf_curve_check(surf\swept_surface.swept_curve)); ELSE (* an offset_surface shall not self-intersect and shall reference a valid surface *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF (surf)) AND (surf\offset_surface.self_intersect = FALSE) OR (surf\offset_surface.self_intersect = UNKNOWN)) THEN RETURN (msf_surface_check(surf\offset_surface.basis_surface)); ELSE (* a surface_replica shall have a valid parent surface *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN(msf_surface_check(surf\surface_replica.parent_surface)); ELSE (* a b_spline_surface shall not self-intersect *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND (surf\b_spline_surface.self_intersect = FALSE) OR (surf\b_spline_surface.self_intersect = UNKNOWN)) THEN RETURN(TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION; FUNCTION nmsf_curve_check (cv: representation_item) : BOOLEAN; IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE', '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.CURVE_REPLICA', '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.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN(FALSE); ELSE (* b_spline_curves shall not self-intersect *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = UNKNOWN)) THEN RETURN(TRUE); ELSE (* conics and lines are valid curve types *) IF SIZEOF (['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.LINE'] * TYPEOF (cv)) = 1 THEN RETURN(TRUE); ELSE (* a curve_replica shall reference a valid curve *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN (nmsf_curve_check(cv\curve_replica.parent_curve)); ELSE (* an offset_curve_3d shall not self-intersect and shall reference a valid curve; a polyline is not a valid basis_curve *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (cv\offset_curve_3d.basis_curve)))) THEN RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve)); ELSE (* a pcurve shall reference a valid curve and a valid basis_surface *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN RETURN ((nmsf_curve_check (cv\pcurve.reference_to_curve\representation.items[1])) AND (nmsf_surface_check(cv\pcurve.basis_surface))); ELSE (* a surface_curve references a curve_3d and one or two pcurves or one or two surfaces or one of each; all of these references shall be valid *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN (* if the curve reference is correct, check also the rest *) IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN REPEAT i := 1 TO SIZEOF (cv\surface_curve.associated_geometry); (* do for one or two associated_geometrys: *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF (cv\surface_curve.associated_geometry[i]) THEN IF NOT nmsf_surface_check (cv\surface_curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (cv\surface_curve.associated_geometry[i]) THEN IF NOT nmsf_curve_check (cv\surface_curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_IF; ELSE (* a polyline shall have at least 3 points *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN IF (SIZEOF (cv\polyline.points) >= 3) THEN RETURN (TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; (* FALSE is returned if the input parameter cv is not a valid curve. *) RETURN (FALSE); END_FUNCTION; FUNCTION nmsf_surface_check (surf: surface) : BOOLEAN; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN(TRUE); ELSE (* a swept_surface shall have a valid sweeping curve *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (surf) THEN RETURN (nmsf_curve_check(surf\swept_surface.swept_curve)); ELSE (* an offset_surface shall not self-intersect and shall reference a valid surface *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF (surf)) AND (surf\offset_surface.self_intersect = FALSE) OR (surf\offset_surface.self_intersect = UNKNOWN)) THEN RETURN (nmsf_surface_check(surf\offset_surface.basis_surface)); ELSE (* a surface_replica shall have a valid parent surface *) IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN(nmsf_surface_check(surf\surface_replica.parent_surface)); ELSE (* a b_spline_surface shall not self-intersect *) IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND (surf\b_spline_surface.self_intersect = FALSE) OR (surf\b_spline_surface.self_intersect = UNKNOWN)) THEN RETURN(TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION; FUNCTION normalise (arg: vector_or_direction) : vector_or_direction; LOCAL ndim : INTEGER; v : direction; result : vector_or_direction; vec : vector; mag : REAL; END_LOCAL; IF NOT EXISTS (arg) THEN result := ?; (* When function is called with invalid data a NULL result is returned *) ELSE ndim := arg.dim; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg) THEN BEGIN v := dummy_gri || direction(arg\vector.orientation.direction_ratios); IF arg.magnitude = 0.0 THEN RETURN(?); ELSE vec := dummy_gri || vector (v, 1.0); END_IF; END; ELSE v := dummy_gri || direction (arg.direction_ratios); END_IF; mag := 0.0; REPEAT i := 1 TO ndim; mag := mag + v.direction_ratios[i]*v.direction_ratios[i]; END_REPEAT; IF mag > 0.0 THEN mag := SQRT(mag); REPEAT i := 1 TO ndim; v.direction_ratios[i] := v.direction_ratios[i]/mag; END_REPEAT; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg) THEN vec.orientation := v; result := vec; ELSE result := v; END_IF; ELSE RETURN(?); END_IF; END_IF; RETURN (result); END_FUNCTION; FUNCTION open_shell_reversed (a_shell: open_shell) : oriented_open_shell; LOCAL the_reverse : oriented_open_shell; END_LOCAL; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF (a_shell) ) THEN the_reverse := dummy_tri || connected_face_set ( a_shell\connected_face_set.cfs_faces) || open_shell () || oriented_open_shell( a_shell\oriented_open_shell.open_shell_element, (NOT (a_shell\oriented_open_shell.orientation))); ELSE the_reverse := dummy_tri || connected_face_set ( a_shell\connected_face_set.cfs_faces) || open_shell () || oriented_open_shell (a_shell, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; FUNCTION orthogonal_complement (vec: direction) : direction; LOCAL result : direction ; END_LOCAL; IF (vec.dim <> 2) OR NOT EXISTS (vec) THEN RETURN(?); ELSE result := dummy_gri || direction([-vec.direction_ratios[2], vec.direction_ratios[1]]); RETURN(result); END_IF; END_FUNCTION; FUNCTION path_head_to_tail (a_path: path) : LOGICAL; LOCAL n : INTEGER; p : LOGICAL := TRUE; END_LOCAL; n := SIZEOF (a_path.edge_list); REPEAT i := 2 TO n; p := p AND (a_path.edge_list[i-1].edge_end :=: a_path.edge_list[i].edge_start); END_REPEAT; RETURN (p); END_FUNCTION; FUNCTION path_reversed (a_path: path) : oriented_path; LOCAL the_reverse : oriented_path ; END_LOCAL; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (a_path) ) THEN the_reverse := dummy_tri || path(list_of_topology_reversed (a_path.edge_list)) || oriented_path(a_path\oriented_path.path_element, NOT(a_path\oriented_path.orientation)) ; ELSE the_reverse := dummy_tri || path(list_of_topology_reversed (a_path.edge_list)) || oriented_path(a_path, FALSE); END_IF; RETURN (the_reverse); END_FUNCTION; FUNCTION scalar_times_vector (scalar: REAL; vec: vector_or_direction) : vector; LOCAL v : direction; mag : REAL; result : vector; END_LOCAL; IF NOT EXISTS (scalar) OR NOT EXISTS (vec) THEN RETURN (?) ; ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF (vec) THEN v := dummy_gri || direction(vec\vector.orientation.direction_ratios); mag := scalar * vec.magnitude; ELSE v := dummy_gri || direction(vec.direction_ratios); mag := scalar; END_IF; IF (mag < 0.0 ) THEN REPEAT i := 1 TO SIZEOF(v.direction_ratios); v.direction_ratios[i] := -v.direction_ratios[i]; END_REPEAT; mag := -mag; END_IF; result := dummy_gri || vector(normalise(v), mag); END_IF; RETURN (result); END_FUNCTION; FUNCTION second_proj_axis (z_axis: direction; x_axis: direction; arg: direction) : direction; LOCAL y_axis : vector; v : direction; temp : vector; END_LOCAL; IF NOT EXISTS(arg) THEN v := dummy_gri || direction([0.0,1.0,0.0]); ELSE v := arg; END_IF; temp := scalar_times_vector(dot_product(v, z_axis), z_axis); y_axis := vector_difference(v, temp); temp := scalar_times_vector(dot_product(v, x_axis), x_axis); y_axis := vector_difference(y_axis, temp); y_axis := normalise(y_axis); RETURN(y_axis.orientation); END_FUNCTION; FUNCTION set_of_topology_reversed (a_set: set_of_reversible_topology_item) : set_of_reversible_topology_item; LOCAL the_reverse : set_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF (a_set); the_reverse := the_reverse + topology_reversed (a_set [i]); END_REPEAT; RETURN (the_reverse); END_FUNCTION; FUNCTION shell_reversed (a_shell: shell) : shell; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN TYPEOF (a_shell) ) THEN RETURN (open_shell_reversed (a_shell)); ELSE IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN RETURN (closed_shell_reversed (a_shell)); ELSE RETURN (?); END_IF; END_IF; END_FUNCTION; FUNCTION surface_condition_correlation (pd: property_definition; rep: representation) : LOGICAL; CASE pd.name OF 'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' : RETURN(pd.name = rep.name); OTHERWISE : RETURN(UNKNOWN); END_CASE; END_FUNCTION; FUNCTION surface_weights_positive (b: rational_b_spline_surface) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.u_upper; REPEAT j := 0 TO b.v_upper; IF (b.weights[i][j] <= 0.0) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; END_REPEAT; RETURN(result); END_FUNCTION; FUNCTION topology_reversed (an_item: reversible_topology) : reversible_topology; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE' IN TYPEOF (an_item)) THEN RETURN (edge_reversed (an_item)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PATH' IN TYPEOF (an_item)) THEN RETURN (path_reversed (an_item)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BOUND' IN TYPEOF (an_item)) THEN RETURN (face_bound_reversed (an_item)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE' IN TYPEOF (an_item)) THEN RETURN (face_reversed (an_item)); END_IF; IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL' IN TYPEOF (an_item)) THEN RETURN (shell_reversed (an_item)); END_IF; IF ('SET' IN TYPEOF (an_item)) THEN RETURN (set_of_topology_reversed (an_item)); END_IF; IF ('LIST' IN TYPEOF (an_item)) THEN RETURN (list_of_topology_reversed (an_item)); END_IF; RETURN (?); END_FUNCTION; FUNCTION type_check_function (the_type: GENERIC; sub_names: SET [0:?] OF STRING; criterion: INTEGER) : LOGICAL; IF ((NOT EXISTS(the_type)) OR (NOT ({0 <= criterion <= 3})) OR (SIZEOF(sub_names) = 0)) THEN RETURN (UNKNOWN); ELSE CASE criterion OF 0: RETURN (SIZEOF(sub_names * TYPEOF(the_type)) > 0); 1: RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 0); 2: RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 1); 3: RETURN (SIZEOF(sub_names * TYPEOF(the_type)) <= 1); END_CASE; END_IF; END_FUNCTION; FUNCTION using_items (item: founded_item_select; checked_items: SET [0:?] OF founded_item_select) : SET [0:?] OF founded_item_select; LOCAL new_check_items : SET OF founded_item_select; result_items : SET OF founded_item_select; next_items : SET OF founded_item_select; END_LOCAL; result_items := []; new_check_items := checked_items + item; -- Find the set of representation_items or founded_items -- in which item is used directly. next_items := QUERY(z <* bag_to_set( USEDIN(item , '')) | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FOUNDED_ITEM' IN TYPEOF(z))); -- If the set of next_items is not empty; IF SIZEOF(next_items) > 0 THEN -- For each element in the set, find the using_items recursively REPEAT i := 1 TO HIINDEX(next_items); -- Check for loop in data model, i.e. one of the next_items -- occurred earlier in the set of check_items; IF NOT(next_items[i] IN new_check_items) THEN result_items := result_items + next_items[i] + using_items(next_items[i],new_check_items); END_IF; END_REPEAT; END_IF; -- return the set of representation_items or founded_items -- in which the input item is used directly and indirectly. RETURN (result_items); END_FUNCTION; FUNCTION using_representations (item: founded_item_select) : SET [0:?] OF representation; LOCAL results : SET OF representation; result_bag : BAG OF representation; intermediate_items : SET OF founded_item_select; END_LOCAL; -- Find the representations in which the item is used and add to the -- results set. results := []; result_bag := USEDIN(item,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS'); IF SIZEOF(result_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(result_bag); results := results + result_bag[i]; END_REPEAT; END_IF; -- Find all representation_items or founded_items -- by which item is referenced directly or indirectly. intermediate_items := using_items(item,[]); -- If the set of intermediate items is not empty; IF SIZEOF(intermediate_items) > 0 THEN -- For each element in the set, add the -- representations of that element. REPEAT i := 1 TO HIINDEX(intermediate_items); result_bag := USEDIN(intermediate_items[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS'); IF SIZEOF(result_bag) > 0 THEN REPEAT j := 1 TO HIINDEX(result_bag); results := results + result_bag[j]; END_REPEAT; END_IF; END_REPEAT; END_IF; -- Return the set of representation in which the input item is -- used directly and indirectly (through intervening -- representation_items or founded items). RETURN (results); END_FUNCTION; FUNCTION valid_basis_curve_in_2d_wireframe (crv: curve) : BOOLEAN; IF SIZEOF (['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', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE'] * TYPEOF (crv)) = 1 THEN RETURN (TRUE); ELSE -- if the curve is a trimmed_curve IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE') IN TYPEOF (crv)) THEN -- if a line, parabola, or hyperbola is being trimmed, then valid IF 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.PARABOLA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.HYPERBOLA'] * TYPEOF(crv\trimmed_curve.basis_curve)) = 1 THEN RETURN (TRUE); -- otherwise, recursively check basis_curve ELSE RETURN (valid_basis_curve_in_2d_wireframe (crv\trimmed_curve.basis_curve)); END_IF; ELSE -- recursively check the offset_curve basis curve IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_2D') IN TYPEOF (crv)) THEN RETURN (valid_basis_curve_in_2d_wireframe (crv\offset_curve_2d.basis_curve)); ELSE -- recursively check the curve_replica parent curve IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA') IN TYPEOF (crv)) THEN RETURN (valid_basis_curve_in_2d_wireframe (crv\curve_replica.parent_curve)); ELSE -- recursively check the composite_curve segments IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE') IN TYPEOF (crv)) THEN RETURN (SIZEOF (QUERY (ccs <* crv\composite_curve.segments | NOT (valid_basis_curve_in_2d_wireframe (ccs.parent_curve)))) = 0); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN (FALSE); END_FUNCTION; FUNCTION valid_calendar_date (date: calendar_date) : LOGICAL; CASE date.month_component OF 1 : RETURN({ 1 <= date.day_component <= 31 }); 2 : BEGIN IF (leap_year(date.year_component)) THEN RETURN({ 1 <= date.day_component <= 29 }); ELSE RETURN({ 1 <= date.day_component <= 28 }); END_IF; END; 3 : RETURN({ 1 <= date.day_component <= 31 }); 4 : RETURN({ 1 <= date.day_component <= 30 }); 5 : RETURN({ 1 <= date.day_component <= 31 }); 6 : RETURN({ 1 <= date.day_component <= 30 }); 7 : RETURN({ 1 <= date.day_component <= 31 }); 8 : RETURN({ 1 <= date.day_component <= 31 }); 9 : RETURN({ 1 <= date.day_component <= 30 }); 10 : RETURN({ 1 <= date.day_component <= 31 }); 11 : RETURN({ 1 <= date.day_component <= 30 }); 12 : RETURN({ 1 <= date.day_component <= 31 }); END_CASE; RETURN (FALSE); END_FUNCTION; FUNCTION valid_datum_target_parameters (pdf: placed_datum_target_feature) : BOOLEAN; LOCAL rep_set : SET OF representation := [] ; parameter_representations: SET OF representation; END_LOCAL; REPEAT i := 1 TO HIINDEX(pdf.representation_associations); rep_set := rep_set + pdf.representation_associations[i].used_representation; END_REPEAT; parameter_representations := QUERY(rep <* rep_set | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rep))); IF (SIZEOF( QUERY( srwp <* parameter_representations | (SIZEOF( QUERY( i <* srwp.items | (i.name='orientation') AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT' IN TYPEOF(i)))) = 1))) <> 1) THEN RETURN(FALSE); END_IF; CASE pdf\shape_aspect.description OF 'point': RETURN(SIZEOF(QUERY( srwp <* parameter_representations | (SIZEOF(srwp.items) = 1))) = 1); 'circle': RETURN((SIZEOF( QUERY( srwp <* parameter_representations | (SIZEOF(srwp.items) = 2))) = 1) AND (SIZEOF( QUERY( srwp <* parameter_representations | (SIZEOF( QUERY( i <* srwp.items | (i.name='target diameter') AND (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1))) = 1)); 'line': RETURN(SIZEOF( QUERY( srwp <* parameter_representations | (SIZEOF( QUERY( i <* srwp.items | (i.name='target length') AND (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2) )) = 1))) = 1); 'rectangle': RETURN((SIZEOF( QUERY( srwp <* parameter_representations | (SIZEOF(srwp.items)= 3))) = 1) AND (SIZEOF( QUERY( srwp <* parameter_representations | (SIZEOF( QUERY( i <* srwp.items | (i.name='target length') AND (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2))) = 1))) = 1) AND (SIZEOF( QUERY( srwp <* parameter_representations | (SIZEOF( QUERY( i <* srwp.items | (i.name='target width') AND (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i) ) = 2))) = 1) )) = 1)); OTHERWISE : RETURN(FALSE); END_CASE; END_FUNCTION; FUNCTION valid_geometrically_bounded_wf_curve (crv: curve) : BOOLEAN; IF SIZEOF ([ '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', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' ] * TYPEOF (crv)) = 1 THEN RETURN (TRUE); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE' IN TYPEOF (crv) THEN IF 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.PARABOLA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.HYPERBOLA' ] * TYPEOF (crv\trimmed_curve.basis_curve)) = 1 THEN RETURN (TRUE); ELSE RETURN (valid_geometrically_bounded_wf_curve(crv\trimmed_curve.basis_curve)); END_IF ; ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (crv) THEN RETURN ( SIZEOF ( QUERY ( ccs <* crv\composite_curve.segments| NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve) )) = 0); END_IF ; END_IF ; END_IF ; END_IF ; END_IF ; RETURN (FALSE); END_FUNCTION; FUNCTION valid_geometrically_bounded_wf_point (pnt: point) : BOOLEAN; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN RETURN (TRUE); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE' IN TYPEOF (pnt) THEN RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA' IN TYPEOF (pnt) THEN RETURN (valid_geometrically_bounded_wf_point(pnt\point_replica.parent_pt)); END_IF ; END_IF ; END_IF ; RETURN (FALSE); END_FUNCTION; FUNCTION valid_measure_value (m: measure_value) : BOOLEAN; IF ('REAL' IN TYPEOF (m)) THEN RETURN (m > 0.0); ELSE IF ('INTEGER' IN TYPEOF (m)) THEN RETURN (m > 0); ELSE RETURN (TRUE); END_IF; END_IF; END_FUNCTION; FUNCTION valid_selected_instance_representation (pd: product_definition_or_assembly_relationship) : LOGICAL; LOCAL properties: SET OF property_definition := bag_to_set(QUERY( prd<* USEDIN ( pd ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | (prd.name = 'occurrence selection' ))); property_definition_representations: SET OF property_definition_representation := bag_to_set(QUERY ( pdr <* USEDIN ( properties[1] , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( pdr.used_representation.name = 'selection criteria' ))); selected_representation: representation; END_LOCAL; IF (SIZEOF( properties)<>1) THEN RETURN(FALSE); END_IF; IF (SIZEOF(property_definition_representations)<>1) THEN RETURN(FALSE); END_IF; selected_representation := property_definition_representations[1]\property_definition_representation.used_representation; IF (SIZEOF(selected_representation\representation.items) <1) OR (SIZEOF(selected_representation\representation.items) >2) THEN RETURN(FALSE); END_IF; IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items | ( SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) = 1) AND ( i.name = 'selection quantity' ))) <> 1 ) THEN RETURN(FALSE); END_IF; IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND ( i.name = 'selection control' )))> 1) THEN RETURN(FALSE); END_IF; --the selection control is not specified then the quantity shall be a qualified_representation_item or a value_range IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i.name = 'selection control' ) ))= 0) AND (SIZEOF ( QUERY ( i <* selected_representation\representation.items | ( i.name = 'selection quantity' ) AND ( SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUALIFIED_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) =0 ))) > 0 ) THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_FUNCTION; FUNCTION valid_time (time: local_time) : BOOLEAN; IF EXISTS(time.second_component) THEN RETURN (EXISTS(time.minute_component)); ELSE RETURN (TRUE); END_IF; END_FUNCTION; FUNCTION valid_units (m: measure_with_unit) : BOOLEAN; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TIME_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( -2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( -2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ENERGY_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORCE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( -2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESSURE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( -1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VELOCITY_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN (FALSE); END_IF; END_IF; RETURN (TRUE); END_FUNCTION; FUNCTION valid_wireframe_edge_curve (crv: curve) : BOOLEAN; IF 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.B_SPLINE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' ] * TYPEOF (crv)) = 1 THEN RETURN (TRUE); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve)); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN RETURN (valid_wireframe_edge_curve(crv\offset_curve_3d.basis_curve)); END_IF ; END_IF ; END_IF ; RETURN (FALSE); END_FUNCTION; FUNCTION valid_wireframe_vertex_point (pnt: point) : BOOLEAN; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN RETURN (TRUE); ELSE IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA' IN TYPEOF (pnt) THEN RETURN (valid_wireframe_vertex_point(pnt\point_replica.parent_pt)); END_IF ; END_IF ; RETURN (FALSE); END_FUNCTION; FUNCTION validate_countersink_radii (cskhole: solid_with_stepped_round_hole_and_conical_transitions) : BOOLEAN; LOCAL i,j : INTEGER; n : INTEGER := 1 + cskhole\solid_with_stepped_round_hole.segments; smaller, larger : positive_length_measure; END_LOCAL; REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions); -- First check whether transition i applies to the entry of the hole or -- the exit of a through hole - those cases only need to be checked for -- the sign of the cone apex angle. IF (((cskhole.conical_transitions[i].transition_number = 1) AND (cskhole.conical_transitions[i].cone_apex_angle < 0)) XOR ((cskhole.conical_transitions[i].transition_number = n) AND (cskhole.conical_transitions[i].cone_apex_angle > 0))) THEN RETURN(FALSE); ELSE IF ((cskhole.conical_transitions[i].transition_number <> 1) AND (cskhole.conical_transitions[i].transition_number <> n)) THEN -- For all remaining transitions, check that the cone base radius -- lies in the range of validity. BEGIN j := cskhole.conical_transitions[i].transition_number; IF cskhole\solid_with_stepped_round_hole.segment_radii[j] > cskhole\solid_with_stepped_round_hole.segment_radii[j-1] THEN BEGIN IF (cskhole.conical_transitions[i].cone_apex_angle > 0) THEN RETURN(FALSE); END_IF; larger := cskhole\solid_with_stepped_round_hole.segment_radii[j]; smaller := cskhole\solid_with_stepped_round_hole.segment_radii[j-1]; END; ELSE BEGIN IF (cskhole.conical_transitions[i].cone_apex_angle < 0) THEN RETURN(FALSE); END_IF; larger := cskhole\solid_with_stepped_round_hole.segment_radii[j-1]; smaller := cskhole\solid_with_stepped_round_hole.segment_radii[j]; END; END_IF; IF ((cskhole.conical_transitions[i].cone_base_radius > larger) OR (cskhole.conical_transitions[i].cone_base_radius < smaller)) THEN RETURN(FALSE); END_IF; END; END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION; FUNCTION value_range_aggregate_rep_item (agg: AGGREGATE OF representation_item) : BOOLEAN; BEGIN IF (SIZEOF(QUERY(i1 <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) )) = 6) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END; END_FUNCTION; FUNCTION value_range_wr1 (agg: compound_item_definition) : BOOLEAN; BEGIN IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY (i1 <* agg | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)))) = 2) OR (SIZEOF(QUERY (i2 <* agg | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF (i2)))) = 2)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION; FUNCTION value_range_wr2 (agg: compound_item_definition) : BOOLEAN; BEGIN IF ((SIZEOF(QUERY (i <* agg | (i\representation_item.name = 'upper limit'))) = 1) AND (SIZEOF(QUERY (i <* agg | (i\representation_item.name = 'lower limit'))) = 1)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION; FUNCTION value_range_wr3 (agg: compound_item_definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY(i1 <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND (SIZEOF (QUERY (i2 <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i2)) AND (i1 :<>: i2) AND (i1\measure_with_unit.unit_component :=: i2\measure_with_unit.unit_component))) = 1))) = 2) THEN RETURN (TRUE); ELSE RETURN (FALSE); END_IF; END; END_FUNCTION; FUNCTION vector_difference (arg1: vector_or_direction; arg2: vector_or_direction) : vector; LOCAL result : vector; res, vec1, vec2 : direction; mag, mag1, mag2 : REAL; ndim : INTEGER; END_LOCAL; IF ((NOT EXISTS (arg1)) OR (NOT EXISTS (arg2))) OR (arg1.dim <> arg2.dim) THEN RETURN (?) ; ELSE BEGIN IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg1) THEN mag1 := arg1.magnitude; vec1 := arg1\vector.orientation; ELSE mag1 := 1.0; vec1 := arg1; END_IF; IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg2) THEN mag2 := arg2.magnitude; vec2 := arg2\vector.orientation; ELSE mag2 := 1.0; vec2 := arg2; END_IF; vec1 := normalise (vec1); vec2 := normalise (vec2); ndim := SIZEOF(vec1.direction_ratios); mag := 0.0; res := dummy_gri || direction(vec1.direction_ratios); REPEAT i := 1 TO ndim; res.direction_ratios[i] := mag1*vec1.direction_ratios[i] - mag2*vec2.direction_ratios[i]; mag := mag + (res.direction_ratios[i]*res.direction_ratios[i]); END_REPEAT; IF (mag > 0.0 ) THEN result := dummy_gri || vector( res, SQRT(mag)); ELSE result := dummy_gri || vector( vec1, 0.0); END_IF; END; END_IF; RETURN (result); END_FUNCTION; END_SCHEMA;