diff options
Diffstat (limited to 'libs/assimp/scripts/StepImporter/schema_ap203e2_mim_lf.exp')
-rw-r--r-- | libs/assimp/scripts/StepImporter/schema_ap203e2_mim_lf.exp | 16378 |
1 files changed, 0 insertions, 16378 deletions
diff --git a/libs/assimp/scripts/StepImporter/schema_ap203e2_mim_lf.exp b/libs/assimp/scripts/StepImporter/schema_ap203e2_mim_lf.exp deleted file mode 100644 index 7935304..0000000 --- a/libs/assimp/scripts/StepImporter/schema_ap203e2_mim_lf.exp +++ /dev/null @@ -1,16378 +0,0 @@ -(* - $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;--<make a union of all implicit populations of the FOR-clause> -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; - |